0804-mini-web框架扩展
好奇试了下,能不能用自己写的程序模拟请求欺骗服务器获取数据
然后就是找不到怎么获取完整请求,network只看得见请求头,我用抓包工具抓包了但是发现看不出来哪是请求(
但是这个方法确实可行,只是我自己写的服务器能被我自己爬(
算了,先别管了,看看元类,ORM之类的东西吧
python里所有东西都是对象,变量,函数,都是对象
那么类(不是对象)本身是否也是一个对象呢?是的,类本身,也是一个对象,这个模板本身也是一个对象
globals()函数,返回一个字典类型,里面有什么,决定内嵌函数可以用什么
你创建一个变量,函数,类,甚至导入都是在修改这个字典里的值,字典里不允许存在相同的键,所以后导入后创建的会覆盖前面的
那么,类的名字,函数的名字都是类似于指针,指向这个对象
所以你掉一个A,他先找全局变量,找不到就进builtins内嵌(你调globals出来的一个mod)里找,找不到就寄
元类是啥,就是一种特殊的类,能创建类的类,元类-->类-->实例对象
总之万物起源,元类,元类?启动!(
通过type可以创建类,typr("类名" , (继承的基类名) , {实例属性/方法名:属性值/方法函数的引用})
而且其实class最终也是type创建的
你可以使用__class__来查看这个基类是谁,type自己创建的自己,他就是那个万物的开始,元类type
元类有什么用?下面有段话
"元类就是深度的魔法,99%的用户应该根本不必为此操心,如果你想搞清楚是否需要用到元类,那
你就不需要它。那些实际用到元类的人都非常清楚地知道他们需要做什么,而且根本不需要解释为什么要用到元类" --python界的领袖Tim Peters
这个东西不是说不用,而是用的很少,可能你写三年用到一次
在创建类的时候,括号里一般我们都只写一个父类对吧,现在告诉你,你还可以写上metaclass=xxx,这个xxx是指定的创建类的对象
你写xxx,就是让xxx来创建,然后你xxx里面可以再调type来创建,在type前,你就可以修改了
但是注意xxx要仨参数,class_name class_parents class_attr,就跟type参数一样的
元类唯一可以被搬上来说的应用的是什么捏,ORM
ORM(Object Relational Mapping),对象-关系映射,很高大上吧,其实就是我访问这个,该打开哪个,跟哪个有关系
解决手动写sql语句的问题,创建个类通过类创建的实例对象,调用对象的方法来执行sql语句,就不用手动写原生sql语句了
你可能觉得没有必要,但是我反正不喜欢sql语句手动写,这个东西最终就变成我操作对象,而不是直接操作数据库那该死的sql语句
然后咱东哥觉得网上的太绕了,自己写了个ORM实现insert功能(