q = request.form['name']# do for 12 more fieldsdb.session.add(q)
request.form['name']将返回一个unipre值。那你就…
db.session.add(q)
会话的目标是跟踪实体(Python对象),而不是你似乎想这样做的单个unipre值。因此,你应该添加具有映射关系的User对象(例如ORM教程的“映射”部分中显示的对象),但实际上是在传递简单的unipre值
你所使用的只是SQLAlchemy的一部分:ORM(对象关系映射器)。ORM将尝试做一些事情,例如允许你创建一个新的python对象,并通过将对象“添加”到会话中来自动生成SQL。
a = MyEntity()session.add(a)session.commit() # Generates SQL to do an insert for the table that MyEntity is for
请记住,你可以在不使用ORM功能的情况下使用SQLAlchemy。你只db.execute(
'INSERT...', val1, val2)需要替换已经“裸”的SQL。SQLAlchemy将为你提供连接池等(尽管如果你使用的是SQLite,则可能不关心连接池)。
如果你想了解Flask-SQLAlchemy,我首先建议你通过使用简单的脚本(如教程中所示)尝试一下SQLAlchemy的工作原理(尤其是ORM方面),然后你将了解Flask-SQLAlchemy的工作原理。 。



