- Peewee 教程
- Peewee - 主页
- Peewee - 概述
- Peewee - 数据库类
- Peewee - 模型
- Peewee - 字段类
- Peewee - 插入新记录
- Peewee - 选择记录
- Peewee - 过滤器
- Peewee - 主键及复合键
- Peewee - 更新现有记录
- Peewee - 删除记录
- Peewee - 创建索引
- Peewee - 约束
- Peewee - 使用 MySQL
- Peewee - 使用 PostgreSQL
- Peewee - 动态定义数据库
- Peewee - 连接管理
- Peewee - 关系及联接
- Peewee - 子查询
- Peewee - 排序
- Peewee - 计数及聚合
- Peewee - SQL 函数
- Peewee - 检索行元组/字典
- Peewee - 用户定义操作符
- Peewee - 原子事务
- Peewee - 数据库错误
- Peewee - 查询构建器
- Peewee - 与 Web 框架集成
- Peewee - SQLite 扩展
- Peewee - PostgreSQL 及 MySQL 扩展
- Peewee - 使用 CockroachDB
- Peewee 实用资源
- Peewee - 快速指南
- Peewee - 实用资源
- Peewee - 讨论
Peewee - 连接管理
默认情况下创建数据库对象时,autoconnect 参数设置为 True。相反,若要以编程方式管理数据库连接,则最初将其设置为 False。
db=SqliteDatabase("mydatabase", autoconnect=False)
数据库类具有可与服务器上数据库建立连接的 connect() 方法。
db.connect()
强烈建议在执行操作后关闭连接。
db.close()
若尝试打开已打开的连接,Peewee 将引发 OperationError。
>>> db.connect() True >>> db.connect() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "c:\peewee\lib\site-packages\peewee.py", line 3031, in connect raise OperationalError('Connection already opened.') peewee.OperationalError: Connection already opened.
若要避免该错误,请将 reuse_if_open=True 用作 connect() 方法的参数。
>>> db.connect(reuse_if_open=True) False
调用已关闭连接上的 close() 不会导致错误。但是,可以使用 is_closed() 方法检查连接是否已关闭。
>>> if db.is_closed()==True: db.connect() True >>>
除了在最后显式调用 db.close() 之外,还可以将数据库对象用作 上下文管理器。
from peewee import * db = SqliteDatabase('mydatabase.db', autoconnect=False) class User (Model): user_id=TextField(primary_key=True) name=TextField() age=IntegerField() class Meta: database=db db_table='User' with db: db.connect() db.create_tables([User])
广告