48 补充

Posted komorebi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了48 补充相关的知识,希望对你有一定的参考价值。

引擎
myisam
innodb
blackhole
memory

ORM
优点:
让一个不懂数据库操作的小白也能够简单快速操作数据库实现相应功能
缺点:
sql 固定封转,不利于sql查询



对象关系映射
类 >>> 数据库的表
对象 >>> 表里一条条的记录
对象获取属性或方法 >>> 记录的字段对应的值


一张表有字段,字段里有字段名,字段类型,字段是否是主键,字段的默认值


class Filed(object):
pass
class StringFiled(object):
pass
class IntegerFiled(object):
pass


点属性 或看值
class Models(dict):
pass
def __getattr__(self,item):
return self.get(item)

def __setattr__(self,key,value):
return self[key] = value



查询
def select(self,**kwargs):
select * from db
select * from db where id = 1

保存
def save(self):
insert into db(name,password) values(‘qwe‘,‘123‘)


修改
def update(self):
update db set name = ‘asd‘ where id = 3


hasattr
getattr
setattr


# 元类拦截类的创建过程 使它具备表的特性
class ModelsMetaClass(type):
def __new__(cls,class_name,class_bases,class_attrs):
# 只拦截模型表的创建表
if class_name = ‘Models‘:
return type.__new__(cls,class_name,class_bases,class-attre)
table_name = class_attrs.get(‘table_name‘,class_name)
primary_key = None
mappings =
k ==>id ,name, v==>对应的值(对象)
for k,v in class_attrs.items():
用户表示表的字段
if isintance(v,Filed):
mapping[k] = v
是否有外键
if v.primary:

if primary_key:
raise TypeError(‘主键重复‘)
primary_key = v.name
多余的删除
for k in mappigs.keys():
class_attr.pop(k)
if not primary_key():
reise TypeError(‘必须要有一个主键‘)

class_attrs[‘table_name‘] = table_name
class_attrs[‘primary_key‘] = primary_key
class_attrs[‘mappings‘] = mappings

return type.__new__(cls,class_name,class_bases,class_attrs)





pymysql模块连接数据库
单例版本
数据库连接池


优酷项目架构设计

注册登录

框架优化

cookie,session

校验登录(服务端必须校验,客户端无所谓)



服务端
1.要有固定的ip和port
2.24小时不间断提供服务
3.能够支持高并发


技术图片

 

以上是关于48 补充的主要内容,如果未能解决你的问题,请参考以下文章

python学习_day48_mysql其他补充

UICollectionViewFlowLayout 中有多个补充视图?

使用 invalidationContext 重新加载 UICollectionView 的补充视图(标题)时遇到问题

滚动旋转时 UICollectionView 崩溃(索引路径处补充项目的布局属性已更改而未失效..)

转载+补充“最简单的” 相机透视投影矩阵推导与解析

今年最后一篇