0804-mini-web框架擴(kuò)展
好奇試了下,能不能用自己寫的程序模擬請求欺騙服務(wù)器獲取數(shù)據(jù)
然后就是找不到怎么獲取完整請求,network只看得見請求頭,我用抓包工具抓包了但是發(fā)現(xiàn)看不出來哪是請求(
但是這個方法確實可行,只是我自己寫的服務(wù)器能被我自己爬(
算了,先別管了,看看元類,ORM之類的東西吧
python里所有東西都是對象,變量,函數(shù),都是對象
那么類(不是對象)本身是否也是一個對象呢?是的,類本身,也是一個對象,這個模板本身也是一個對象
globals()函數(shù),返回一個字典類型,里面有什么,決定內(nèi)嵌函數(shù)可以用什么
你創(chuàng)建一個變量,函數(shù),類,甚至導(dǎo)入都是在修改這個字典里的值,字典里不允許存在相同的鍵,所以后導(dǎo)入后創(chuàng)建的會覆蓋前面的
那么,類的名字,函數(shù)的名字都是類似于指針,指向這個對象
所以你掉一個A,他先找全局變量,找不到就進(jìn)builtins內(nèi)嵌(你調(diào)globals出來的一個mod)里找,找不到就寄
元類是啥,就是一種特殊的類,能創(chuàng)建類的類,元類-->類-->實例對象
總之萬物起源,元類,元類?啟動!(
通過type可以創(chuàng)建類,typr("類名" , (繼承的基類名) , {實例屬性/方法名:屬性值/方法函數(shù)的引用})
而且其實class最終也是type創(chuàng)建的
你可以使用__class__來查看這個基類是誰,type自己創(chuàng)建的自己,他就是那個萬物的開始,元類type
元類有什么用?下面有段話
"元類就是深度的魔法,99%的用戶應(yīng)該根本不必為此操心,如果你想搞清楚是否需要用到元類,那
你就不需要它。那些實際用到元類的人都非常清楚地知道他們需要做什么,而且根本不需要解釋為什么要用到元類" --python界的領(lǐng)袖Tim Peters
這個東西不是說不用,而是用的很少,可能你寫三年用到一次
在創(chuàng)建類的時候,括號里一般我們都只寫一個父類對吧,現(xiàn)在告訴你,你還可以寫上metaclass=xxx,這個xxx是指定的創(chuàng)建類的對象
你寫xxx,就是讓xxx來創(chuàng)建,然后你xxx里面可以再調(diào)type來創(chuàng)建,在type前,你就可以修改了
但是注意xxx要仨參數(shù),class_name class_parents class_attr,就跟type參數(shù)一樣的
元類唯一可以被搬上來說的應(yīng)用的是什么捏,ORM
ORM(Object Relational Mapping),對象-關(guān)系映射,很高大上吧,其實就是我訪問這個,該打開哪個,跟哪個有關(guān)系
解決手動寫sql語句的問題,創(chuàng)建個類通過類創(chuàng)建的實例對象,調(diào)用對象的方法來執(zhí)行sql語句,就不用手動寫原生sql語句了
你可能覺得沒有必要,但是我反正不喜歡sql語句手動寫,這個東西最終就變成我操作對象,而不是直接操作數(shù)據(jù)庫那該死的sql語句
然后咱東哥覺得網(wǎng)上的太繞了,自己寫了個ORM實現(xiàn)insert功能(