- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要一些帮助来自动化 sqlalchemy 中的一些任务。
当新用户在我的网站上注册时,我需要添加 5 名人员。
我想使用 sqlalchemy events
因为如果我可以让它工作,它将在以后的其他自动化中派上用场。
我正在关注 Miguel Grinberg 先生关于如何制作 flask 的教程
申请并定义我的模型(db.Model 不是 Base) .
我读到使用 @event.listens_for(User.__table__, "after_insert")
我必须使用声明性基础。有没有解决的办法?我的模型结构涉及近 15 个表!
class User(db.Model):
__tablename__ = "user"
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
email = db.Column(db.String(64), unique=True, index=True)
username = db.Column(db.String(64), unique=True, index=True)
password_hash = db.Column(db.String(128))
store = db.relationship('Store', uselist=False, backref="user")
@event.listens_for(User.__table__, "after_insert")
def add_personnel(*args, **kwargs):
for i in range(5):
db.session.add(Personnel,store_id = User.query.last().id)
db.session.commit()
return None
class Personnel(db.Model):
__tablename__ = "personnel"
id = db.Column(db.Integer, primary_key=True)
store_id = db.Column(db.Integer, db.ForeignKey('store.id'))
first_name = db.Column(db.String(64))
last_name = db.Column(db.String(64))
username = db.Column(db.String(64))
cell_phone = db.Column(db.Integer)
pin_number = db.Column(db.Integer)
email = db.Column(db.String(64))
orders = db.relationship("Order", backref='personnel', lazy='dynamic')
**TRACEBACK**
Traceback (most recent
call last):
File "manage.py", line 3, in <module>
from app.models import User
File "/home/#######/PycharmProjects/#######/app/models.py", line 62, in <module>
@event.listens_for(User.__table__, "after_insert")
File "/home/#######/PycharmProjects/#######//venv/local/lib/python2.7/site-packages/sqlalchemy/event/api.py", line 124, in decorate
listen(target, identifier, fn, *args, **kw)
File "/home/#######/PycharmProjects/#######/venv/local/lib/python2.7/site-packages/sqlalchemy/event/api.py", line 89, in listen
_event_key(target, identifier, fn).listen(*args, **kw)
File "/home/#######/PycharmProjects/#######/venv/local/lib/python2.7/site-packages/sqlalchemy/event/registry.py", line 194, in listen
dispatch_collection = getattr(target.dispatch, identifier)
File "/home/#######/PycharmProjects/#######/venv/local/lib/python2.7/site-packages/sqlalchemy/event/base.py", line 95, in __getattr__
raise AttributeError(name)
AttributeError: after_insert
最佳答案
我使用参数中的连接让我像这样工作。
@db.event.listens_for(Order, "after_insert")
def insert_order_to_printer(mapper, connection, target):
po = PrinterOrder.__table__
connection.execute(po.insert().values(store_id=target.store_id, order_id=target.id, scenario=target.order_type))
class Order(db.Model):
#stuff
关于python - SQLALCHEMY:如何在flask_sqlalchemy-SQLalchemy 中使用@events.listens_for,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41249045/
我是 Python 新手,我一直在学习一些教程,现在我正在尝试自己制作一个带有 API 的网站。我正在使用 Flask、Flask_SQLAlchemy 和 Blueprints,并且我试图创建一个只
即使安装了flask-sqlachemy,我也无法导入flask_sqlalchemy from flask import Flask, render_template from flask_sqla
为了测试,我将MYSQL(RDS)参数修改如下; wait_timeout = 40 (default was 28800) max_allowed_packet = 1GB (max - just
我开始学习如何在我的代码中使用 SQLAlchemy,但由于某种原因,当我运行代码时它引发了此异常: Traceback (most recent call last): File "C:/Use
我开始学习如何在我的代码中使用 SQLAlchemy,但由于某种原因,当我运行代码时它引发了此异常: Traceback (most recent call last): File "C:/Use
我想将 sqlalchemy 池大小设置为默认值以外的值。 我有一个 flask 应用程序。我使用以下命令从文件文件设置配置 app.config.from_pyfile('config.py') 在
我正在尝试了解如何设置调用 create_all 的独立脚本,而无需将我的所有模型导入其中。以下是相关文件: db.py from flask_sqlalchemy import SQLAlchemy
我想将 UniqueConstraint 与 flask_sqlalchemy 一起使用 不幸的是,这个导入语句: from flask_sqlalchemy import SQLAlchemy, U
重新构建Docker镜像后,我开始出现以下错误: $ docker run --rm -it python:3.8-slim /bin/bash ... $ pip install flask_sql
我正在通过 flask_sqlalchemy 使用 SQLAlchemy。模型接收来自 HTML 表单的输入。我希望这个输入被去掉任何标签。与其在赋值之前在代码中多次执行此操作,我认为在模型对象中以某
我通过 virtualenv 安装了 Flask,并使用 source bin/activate 来使用 Flask。 Flask 返回正常,但我根本无法导入 sqlalchemy 或flask-sq
我无法使用 Flask_SQLAlchemy 在 MySQL 中存储瑞典语字符 :( 我已经尝试了一个星期的解决方案,我真的需要帮助,因为感觉我已经走到了死胡同。我认为它可能是我的工具的版本兼容性有问
我目前正在从事一个涉及框架 flask 和 sqlalchemy 的项目。基本思想是拥有一个票务系统,提供不同种类的票证。 我的代码的简化版本可以在这里找到:https://github.com/Bi
我想要在 Flask 中替代 Django 的 unique_together,似乎 UniqueConstraint 是我正在寻找的,但对我不起作用。 例子如下: import os from fl
我正在尝试将外国人数据库连接到 python-Flask应用程序使用 Flask_SQLALchemy 我到处找,包括FLASK_SQLALCHEMY official doc 在过去的 4 天里,我
from flask import Flask, request, jsonify, make_response import json from flask_sqlalchemy import SQ
我使用的是 Debian“Linux mint 19.1”和 python 3.7.4,系统已经有 2.7 和 3.6 版本。我创建了一个环境,但是当我开始使用 db.create_all() 创建数
在顺利地将我的 python 应用程序推送到 heroku 之后,我发出了 heroku ps:scale web=1 命令并在 heroku 日志中遇到以下错误; 2018-11-27T08:34:
当我向现有表添加新列(nullable=False)时,我需要手动更新迁移修订文件以首先添加 nullable=True 的列,然后更新所有现有记录以设置该列,之后将该列更改为 nullable=Fa
如果我在我的应用程序中使用以下格式,一切正常,除了 PyCharms 解析/自动完成功能: from flask.ext.sqlalchemy import SQLAlchemy 如果我在我的应用程序
我是一名优秀的程序员,十分优秀!