Skip to main content

将 Peewee 用作 Pyramid Web 应用程序的 ORM。-pyramid_peewee

项目描述

Pyramid_peewee 是 Pyramid Web 应用程序框架的一个模块,它允许开发人员使用 Peewee 作为他们的 ORM。

要求:

1. Pyramid
2. Peewee
3. Database

用法:

通常,基于 Pyramid 的应用程序配置在两个位置,在应用程序 __init__.py 文件中的应用程序级别和“ini”文件中的实例级别,例如 production.ini。要配置您的应用程序,首先在实例(例如 production.ini)级别,您必须设置 peewee.urls = “database connection url”

peewee.urls = <s>sqlite:///dbase.db</s>
or
peewee.urls =
    postgresql://user:pass@localhost:5432/mydatabase
    sqlite:///dbase.db

请注意,我们专门使用 peewee 文档Connecting using a Database URL中定义的数据库 url ,并且您可以在 peewee.urls 参数中指定应用程序所需的尽可能多的数据库 url。在应用程序级别,例如在您的应用程序 __init__.py 文件中

  1. 导入您的数据库模型

  2. 在配置部分包含命令 config.include('pyramid_peewee')。

定义您的数据模型:要定义您的数据模型,首先设置您的数据库 = peewee.Proxy。请注意您的数据库是否包含“.” 在名称中,例如使用 sqlite 文件将其替换为“_”(下划线)。

from peewee import *

mydatabase = Proxy()
dbase_db = Proxy()

class People(Model):
    name = TextField()
    class Meta:
        database = mydatabase

class Cars(model):
    name = TextField()
        class Meta:
            database = dbase_db

在此示例中,我们定义了两个表,每个表都派生自不同的数据库代理。Peewee 允许您根据需要定义任意数量的数据库连接,并在应用程序中无缝地使用它们。

在视图中使用您的数据模型:

要在视图中使用您的数据模型,您必须首先获得数据库连接。这是通过调用绑定到视图请求的数据库代理来完成的。通过这样做,数据库连接在请求结束时正确关闭。

from model import *
def myView(requset):
    request.mydatabase
    joe = People.select().where(People.name=='joe').get()
    return dict(name=joe.name)

如上所述,通过调用 request.mydatabase 完成了两件事,一是为请求打开数据库连接,二是注册回调,它将在请求结束时正确关闭连接。尝试使用模型而不首先从请求对象调用数据库方法将导致 DataBaseClosed 错误。这与正常的 PeeWee 行为有所不同,后者通常会根据需要打开连接。

PeeWee 文档中支持的数据库 URL:

  1. sqlite:///my_database.db将为当前目录中的文件 my_database.db 创建一个 SqliteDatabase 实例。

  2. sqlite:///:memory:将创建一个内存中的 SqliteDatabase 实例。

  3. postgresql://postgres:my_password@localhost:5432/my_database将创建一个 PostgresqlDatabase 实例。提供了用户名和密码,以及要连接的主机和端口。

  4. mysql://user:passwd@ip:port/my_db将为本地 MySQL 数据库my_db创建一个 MySQLDatabase 实例。

支持的方案:

  1. apsw:APSW数据库

  2. mysql: MySQL数据库

  3. mysql+pool:池化MySQL数据库

  4. postgres:Postgresql 数据库

  5. postgres+pool:池化Postgresql数据库

  6. postgresext:PostgresqlExtDatabase

  7. postgresext+pool:PooledPostgresqlExtDatabase

  8. sqlite:Sqlite数据库

  9. sqliteext:SqliteExtDatabase

最新的文档总是可以在他们的网站上找到: Peewee 数据库 URL

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pyramid_peewee-0.5.tar.gz (5.0 kB 图哈希)

已上传 source

内置分布

pyramid_peewee-0.5-py3-none-any.whl (8.2 kB 查看哈希)

已上传 3 4