应用Python--问题记录
1、数据库连接池问题:加poolsize = 100解决
2、出现的问题:can't multiply sequence by non-int of type 'float'
解决:自己在键盘输入的整数其实并不是正整数,而是字符串形式,需要强制类型转换
3、int(M) M表示的不是数据的最大长度,只是数据宽度,并不影响存储多少位长度的数据;
varchar(M) M表示的是varchar类型数据在数据库中存储的最大长度,超过则不存;
8、判断Scrolltext中输入的内容
if question.question=="" or question.question=='\n':
return None
else:
balabala.......
9、显示图片
from PIL import Image,ImageTk
img = 'C:/Users/ys150/Desktop/phone_system/app/images/login.png'
img_open = Image.open(img)
img_png = ImageTk.PhotoImage(img_open)
self.Image2 = tk.Label(self.window, bd=20, height=60, width=600, image=img_png)
self.Image2.pack()
10、SQLAlchemy
create_engine() 会返回一个数据库引擎,echo 参数为 True 时,会显示每条执行的 SQL 语句,生产环境下可关闭。
sessionmaker() 会生成一个数据库会话类。这个类的实例可以当成一个数据库连接,它同时还记录了一些查询的数据,并决定什么时候执行 SQL 语句。由于 SQLAlchemy 自己维护了一个数据库连接池(默认 5 个连接),因此初始化一个会话的开销并不大。
栗子:
session.add(user)
session.query(User.id)
session.query(User.id).order_by(User.name.desc(), User.id).all()
session.delete(user)
session.commit()
declarative_base() 创建了一个 BaseModel 类,这个类的子类可以自动与一个表关联。
以 User 类为例,它的 __tablename__ 属性就是数据库中该表的名称,它有 id 和
name 这两个字段,分别为整型和 30 个定长字符。Column 还有一些其他的参数,我就不解释了。
最后,BaseModel.metadata.create_all(engine) 会找到
BaseModel 的所有子类,并在数据库中建立这些表;drop_all() 则是删除这些表。

浙公网安备 33010602011771号