python - 带有 Flask 的 SQLALchemy 中的静态模型实例(夹具)
问题描述
我正在使用 SQLAlchemy 开发一个 Flask 应用程序。对于授权,我使用的是用户角色,这是一个简单的 SQLAlchemy 模型,与用户有 m2m 关系。我希望在应用程序启动时自动创建一些角色,例如“管理员”,以防它们尚不存在。这类似于单元测试的夹具,只是没有测试部分。
我已经尝试将所需的代码放入使用before_app_first_request
装饰器注册的函数中,但是我需要推送一个应用程序上下文才能使其工作。我无法在相关代码中访问该应用程序,因为它是独立蓝图的一部分。
代码看起来类似于:
from app import db
my_blueprint = flask.Blueprint(...)
from .models import Role
@my_blueprint.before_app_first_request
def load_fixtures():
admin_role = Role.query.filter_by(name='admin').first()
if coach_role is None:
db.session.add(Role(name='admin'))
db.session.commit()
有没有首选的方法来做到这一点?即在应用程序启动时运行固定装置?
解决方案
推荐阅读
- python - 当使用请求和beautifulsoup加载更多内容时,我无法抓取一个网址不会在其下一页上更改的网站
- python - 在父 dockerfile 中更改 conda python 版本
- docker - 带有 nginx 的 Docker 仅显示 nginx start html
- frequency - 如果 clk 在 f1 工作并且输入数据以 f2 频率变化,D FF 的输出频率是多少
- c - 如何在独立环境中的内核中获取输入?
- java - 如何在 Eclipse 中恢复嵌套项目
- flutter - 值通知器
#97fe7(去健身房) - javascript - NodeJS 多类文件意外行为 process.on('uncaughtException')
- azure - Azure 流分析 npm 包不适用于 yaml 管道
- ios - 'FIRMessaging' 和 'FIRInstanceID' 在不同的模块中有不同的定义