仿youku架構html
數據庫設計數據庫
管理員 註冊 登陸 上傳視頻 刪除視頻 發佈公告 普通用戶 註冊 登陸 充會員 查看視頻 下載免費視頻 下載收費視頻 查看觀影記錄 查看公告
思路服務器
class Field 表示數據表裏的字段(字段屬性:名字,類型,是否爲主鍵,默認值) 類的對象————>數據庫表的字段 class IntegerField(Field) 整型 class StringField(Field) 字符型 class ModelsMetaclass(type) 重寫元類,讓類建立以前,攔截它並重寫__new__方法,name,bases,attrs, 循環attrs,進行更進一步判斷操做 使attrs剔除掉原始初始化時賦予的屬性值,且僅有table_name,primary_key,mappings def __new__ class Models(dict,metaclass=ModelsMetaclass) 如何在類進行實例化的時候,k=v,都能放進屬性裏 dict, 字典取值用的是中括號[],而咱們須要的是用點(.) __getattr__ __setattr__ 根據類名查對象 注意防止SQL注入 # select * from %s where %s = ? % (cls.table_name,key) @classmethod select_one # select * from %s where % (cls.table_name) # select * from %s where %s = ? % (cls.table_name,key) @classmethod select_many 模擬session機制 服務端驗證成功後,生成一個密文 客戶端一旦斷開,服務器保存的session狀態清除掉 採用字典的pop方法 拼接字典 #live_user = {addr:[session,user_id],addr:[session,user_id],addr:[session,user_id]} live_user.pop(addr)
源碼:session