摘要:
ORM 直接使用sql语句虽然方便,但缺点是如果要更换数据库可能还需要修改程序中的Sql语句。为了解决这个问题,出现了ORM。在Python语言中使用ORM有多种选择,都是通过模块支持的。 比较著名的有SQLAlchemy和SQLObject,SQLObject比SQLAlchemy简单的多,但是网上实例太少,所以建议使用SQLAlchemy SQLAlchemy模式 首先安装所需模块... 阅读全文
摘要:
1044, "Access denied for user 'root'@'192.168.0.%' to database 'test'" 是因为创建这个test数据库时候没有给这个数据库授予被操作权限,所以报错,授权即可 解决: grant all privileges on test.* TO 'root'@'%' identified by 'jenkins@123' with g... 阅读全文
摘要:
数据存储 处理JSON格式的数据 JSON字符串与字典相互转换 将字典转换为JSON字符串需要使用json模块的dumps函数。将JSON字符串转换为字典有下面两种方式 (1)使用json模块的loads函数,该函数通过参数传入JSON字符串,然后返回与该JSON字符串对应的字典(推荐) (2)使用eval函数将字典转换为JSON字符串(不建议用这种方式) 尽管eval函数与load... 阅读全文
摘要:
常用的正则表达式: Email:'[0-9a-zA-Z]+@[0-9a-zA-Z]+\.[a-zA-Z]{2,3}' IP地址:'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' Web地址:'https?:/{2}\w.+' import re # 匹配email的正则表达式 email='[0-9a-zA-Z]+@[0-9a-zA-Z]+\.[a-zA-Z]{... 阅读全文
摘要:
特殊成员方法 除了构造方法(__init__),还可以使用如下4个特殊方法定义自己的序列类,就像列表、字典等序列一样,只不过用自己特殊的行为,所有的特殊方法在名称前后需要加(__) __len__(self): __getitem__(self,key): __setitem__(self,key,value): __delitem__(self,key) 阅读全文
摘要:
使用super函数----增量重写普通方法和构造方法 在子类中如果重写了超类的方法,通常需要在子类方法中调用超类的同名方法,也就是说,重写超类的方法,实际上应该是一种增量的重写方式,子类方法会在超类的同名方法的基础上 做一些其他的工作。 如果在子类中要访问超类中的方法,需要使用super函数。该函数返回的对象代表超类对象,所以访问super函数返回的对象中的资源都属于超类。super函数可... 阅读全文
摘要:
重写普通方法和构造方法 在类的继承中,当B类继承A类时,B类就会拥有A类的所有成员变量和方法,如果B类中的方法名与A类中的方法名相同,那么B类中同方法名就会重写A类中同方法名。 如果在B类中定义了构造方法,同样也会重写A类中的构造方法,也就是说,创建B类对象,实际上是调用B类中的构造方法,而不是A类中的构造方法。 实例 class A: def __init__(self): ... 阅读全文
摘要:
Python的数据类型与数据结构 数据类型分为: 整数型 ;数字的整数 浮点型; 数字带小数 字符串; 用 ‘’ 或者 “” 引用的任意文本 布尔型;只有 True 和 False 数据结构分为: 列表 list 元祖 tuple 字典 dict 集合 set 阅读全文
摘要:
类 创建类 #创建一个Person类 class Person: #定义setName方法 def setName(self,name): self.name=name #定义getName方法 def getName(self): return self.name # 定义greet方法 def greet(s... 阅读全文
摘要:
生产者-消费者问题与quene模块 下面使用线程锁以及队列来模拟一个典型的案例:生产者-消费者模型。在这个场景下,商品或服务的生产者生产商品,然后将其放到类似队列的数据结构中,生产商品的时间是不确定的, 同样消费者消费生产者的商品的时间也是不确定的。 这里使用quene模块来提供线程间通信的机制,也就是说,生产者和消费者共享一个队列。生产者生产商品后,会将商品添加到队列中。消费者消费商品,... 阅读全文