【发布时间】:2021-12-11 13:05:21
【问题描述】:
情况:
我有一个烧瓶应用程序,我需要在其中使用主键将行插入数据库的功能。
守则:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = "postgresql://example:example@example:5432/example"
db = SQLAlchemy()
db.init_app(app)
class TestModel(db.Model):
__tablename__ = 'test'
id = db.Column(primary_key=True, autoincrement=False)
value = db.Column(db.String())
@app.route("/test", methods=['GET'])
def test():
model = TestModel()
model.id = 1234 # force set primary key
model.value = 'Some string'
db.session.add(model)
db.session.commit()
问题:
ORM 似乎添加了错误的行,因为日志中出现以下内容。
...
[SQL: INSERT INTO test (value) VALUES (%(value)s)]
...
我需要什么:
我需要它来执行类似于下面的 tha 的 SQL 代码。
INSERT INTO test (id, value)
VALUES (1234, 'Some string')
问题:
如何让 flask-sqlalchemy ORM 插入带有预分配主键的行?
使用的包:
Python 3.9
烧瓶 1.1.2
Flask-SQLAlchemy 2.5.1
SQLAlchemy 1.4.13
编辑...
我不知道发生了什么。但我刚刚重新启动服务器,我的代码开始按预期工作。
谢谢大家的帮助!
【问题讨论】:
-
与
Flask==2.0.1、Flask-SQLAlchemy==2.5.1和SQLAlchemy==1.4.26一起正常工作。生成代码[SQL: INSERT INTO test (id, value) VALUES (?, ?)] [parameters: (1234, 'Some string')].
标签: python python-3.x flask flask-sqlalchemy