peewee - 与 Database() 初始化分开定义模型

2023-12-21

我需要使用一些 ORM 引擎,比如peewee,用于在我的 python 应用程序中处理 SQLite 数据库。然而,大多数此类库都提供这样的语法来定义models.py:

import peewee

db = peewee.Database('hello.sqlite')

class Person(peewee.Model):
    name = peewee.CharField()

    class Meta:
        database = db

但是,在我的应用程序中,我无法使用这种语法,因为数据库文件名是在导入后由外部代码从模块提供的,该模块导入我的models.py.

如何在知道动态数据库文件名的情况下从定义之外初始化模型?理想情况下,models.py根本不应该包含“数据库”提及,就像普通的 ORM 一样。


也许您正在查看代理功能:代理-peewee http://docs.peewee-orm.com/en/latest/peewee/database.html#dynamically-defining-a-database

database_proxy = Proxy()  # Create a proxy for our db.

class BaseModel(Model):
    class Meta:
        database = database_proxy  # Use proxy for our DB.

class User(BaseModel):
    username = CharField()

# Based on configuration, use a different database.
if app.config['DEBUG']:
    database = SqliteDatabase('local.db')
elif app.config['TESTING']:
    database = SqliteDatabase(':memory:')
else:
    database = PostgresqlDatabase('mega_production_db')

# Configure our proxy to use the db we specified in config.
database_proxy.initialize(database)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

peewee - 与 Database() 初始化分开定义模型 的相关文章

随机推荐

  • 合并 GitHub 帐户 - 贡献和统计数据

    我想合并我的两个 GitHub 帐户 这意味着将存储库所有权转移到一个帐户 并删除另一个帐户 根据https help github com articles transferring a repository https help git
  • 新的时间轴,如按钮行为

    在新样式的页面选项卡上 赞 按钮不再刷新页面 这打破了 Like gates 的现有工作流程 即在服务器上检查签名的请求 就像页面一样 页面刷新 繁荣 选项卡现在更新为 喜欢 状态 当用户单击新的 赞 按钮时 是否会触发任何类型的事件 或者
  • 为什么 Mongoose 不验证空文档?

    假设我有一个非常简单的模式 带有一个始终返回 false 的自定义验证函数 var MofoSchema new mongoose Schema name String MofoSchema path name validate funct
  • 60 秒后阻止操作调用超时 - 如何访问结果?

    我正在尝试调用 Apache OpenWhisk 操作 使用 JavaScript SDK 作为远程函数 我想等待函数结果可在我的应用程序中使用 这通常通过使用阻塞调用来处理 例如 ow actions invoke name blocki
  • 多语言网站 - 如何设置所需的默认语言?

    我用 joomla 多语言制作网站 塞尔维亚语和英语 我正在使用 joomla 3 3 3 和 joomla 内置对多语言的支持 但我想将塞尔维亚语设置为默认语言 因此 当用户访问我的网站时 默认情况下总是使用塞尔维亚语 怎么做 谢谢 您必
  • 将日期添加到日期对象[重复]

    这个问题在这里已经有答案了 可能的重复 如何在今天的日期上添加天数 https stackoverflow com questions 3818193 how to add number of days to todays date 我很困
  • 安装 libCurl - ruby​​ 1.9.3 ..rails 3.2.12 ..Windows

    所以 我正在尝试让 feedzirra 启动并运行 ruby 1 9 3p448 Rails 3 2 12 我去了http curl haxx se download html Win32 http curl haxx se downloa
  • 如何使用内容解析器/提供者测试类?

    我正在尝试测试查询内容解析器的类 我想用MockContentResolver并嘲笑query方法 问题是这个方法是最终的 我应该怎么办 使用模拟框架 模拟其他类 提前致谢 public class CustomClass private
  • 如何在无网格 2D 平面上使用 A* 寻路算法?

    如何在没有节点或单元的无网格 2D 平面上实现 A 算法 我需要物体能够绕过目标途中相对较多的静态和移动障碍物 我当前的实现是在对象周围创建八个点 并将它们视为假想的相邻正方形的中心 这些正方形可能是对象的潜在位置 然后我计算每个函数的启发
  • ng-template 错误:模板上下文未定义名为 ... (Kendo Grid) 的成员

    我在尝试在 Angular 中将 ng template 与 Kendo Grid 一起使用时遇到问题 我的 html 是有效的 启动时可以正常编译和运行 但 Visual Studio Code 会显示此错误 模板上下文未定义名为 col
  • 如何在R中计算后代的平均出生年份?

    我想知道每个人的直系后代的平均出生年份 包 pedigree 有一个函数 countOff 可以计算所有后代 包括孙子 这不是我想要的 这是我的数据框 df ID lt 1 30 MomID lt c NA NA NA NA NA NA N
  • React App 安装后编译失败

    运行安装脚本后 服务器启动并提供一个页面 在 无法编译行 之后显示相同的文本 我正在运行 Windows 10 自动更新今天刚刚更新了我的电脑 就在我安装 create react express 之前 PS H mern passport
  • 计算 InfluxDB 中开始和结束事件之间的持续时间

    我对 InfluxDB 有两个写入点 一个是开始 另一个是结束 我只需要确定这两个事件之间的持续时间 并围绕它进行查询 InfluxDB有difference 聚合方法 但它不适用于时间元字段 提供自定义时间戳值是实现此目的的唯一方法吗 A
  • maven程序集,避免zip文件中的完整路径?

    我有一个多模块项目 其中包含 2 个模块 每个模块都有自己的 pom xml 和指向这些模块的父 pom xml 当我在父 pom 上运行 mvn clean package 时 每个项目最终都会在其自己的目标文件夹下生成一个 zip 文件
  • 无法将图像上传到 WCF Rest 服务

    我正在创建 WCF Rest 服务以从移动应用程序上传图像 但我得到了 远程服务器返回错误 400 错误请求 任何人都可以指出我做错了什么吗 以下是我的定义 OperationContract WebInvoke BodyStyle Web
  • Vim 和 Java:自动添加 java import 语句

    The tip http vim wikia com wiki Add Java import statements automatically错误是 E349 光标下没有标识符 E433 没有标签文件 和 E426 找不到标签 公共 我觉
  • SQL 查询 - 跨多个字段搜索

    我正在尝试实现一种搜索 您可以在其中输入多个搜索词来形成 AND 条件 它还应该在数据库的不同字段中进行搜索 例如 当你进入时的你 比尔 西雅图 你应该得到一个记录NAME火柴Bill and CITY火柴Seattle 你不应该得到任何只
  • 使用 JAXB 解组 XML,无需取消转义字符

    想象一下以下情况 我们从某些外部工具收到一个 xml 文件 最近 在此 xml 中 节点名中或其 richcontent 标记中可能存在一些转义字符 如以下示例 简化 所示
  • NSMutableData 消失

    在我的程序中 我有一个 NSMutableData 变量 用于收集信息http www nhara org scored races 2013 htm http www nhara org scored races 2013 htm 大约第
  • peewee - 与 Database() 初始化分开定义模型

    我需要使用一些 ORM 引擎 比如peewee 用于在我的 python 应用程序中处理 SQLite 数据库 然而 大多数此类库都提供这样的语法来定义models py import peewee db peewee Database h