我正在Flask中构建应用程序,并且定义了几个SQLAlchemy模型。我有一个字典,其中包含每种模型类型的键/值对。
我想使用字典进行广义插入…这是否需要映射器?我知道wtforms.ext.sqlalchemy.orm.model_form()会使用populate_obj(model)生成一个对象,因此这是可能的。我已经仔细阅读了文档,但找不到它。我可以稍后执行提交,但是现在需要快捷方式来填充对象。拜托,有人有专业知识吗?
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
db = SQLAlchemy()
db.init_app(app)
employee_data = {'firstname':'John','lastname':'Smith'}
project_data = {'name':'project1'}
dict_generalised_insert(model=Employee,dictionary=employee_data)
dict_generalised_insert(model=Project,dictionary=project_data)
def dict_generalised_insert(model=None,dictionary={})
obj = model.model()
obj.populate_obj(dictionary) # ???
return obj
class Employee(db.Model):
id = db.Column(db.Integer, primary_key=True)
firstname = db.Column(db.String(80))
lastname = db.Column(db.String(80))
class Project(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80))
解开字典的惯用方式是使用双星运算符 **
。
配合使用flask-sqlalchemy
:
class Employee(db.Model)
id = db.Column(...)
firstname = db.Column(...)
lastname = db.Column(...)
employee_data = {'firstname':'John','lastname':'Smith'}
employee = Employee(**employee_data)
db.session.add(employee)
db.session.commit()
请注意,字典中的键必须与类的属性名称匹配。以这种方式打开包装与:
employee = Employee(firstname='John', lastname='Smith')
如果你__init__
使用位置参数定义了一个(或其他方法),但是你也可以使用列表来执行此操作,但是你仅使用单个星号:
def __init__(self, firstname, lastname):
self.firstname = firstname
self.lastname = lastname
employee_data = ['John', 'Smith']
employee = Employee(*employee_data)
...
注意这里的值顺序很重要。
本文向大家介绍sqlalchemy 将结果转换成字典,包括了sqlalchemy 将结果转换成字典的使用技巧和注意事项,需要的朋友参考一下 示例 在SQLAlchemy核心中,结果为RowProxy。如果您需要显式词典,可以致电dict(row)。 首先为示例进行设置: 然后从结果行创建字典:
问题内容: 我有一个字典,想要将所有值添加到sqlite数据库中。词典中的所有键都存在于数据库中,并且所有键的类型均为字符串。但是,在将值输入数据库时遇到了麻烦。每当下面的代码遇到字符串中带有“”的字符串时,它们都是丑陋的,不安全的,并且会出错,但是可以正常工作。 我如何才能优雅地解决此问题,使其安全并接受字符串中带有“”的输入?我遇到了几种其他方法。例如: 但是会引发类型错误。 到目前为止,
本文向大家介绍sqlalchemy 将查询结果转换为字典,包括了sqlalchemy 将查询结果转换为字典的使用技巧和注意事项,需要的朋友参考一下 示例 首先为示例进行设置: 如果您要分别查询列,则该行是KeyedTuple具有_asdict方法的。方法名称以单个下划线开头,以匹配namedtupleAPI(它不是私有的!)。 使用ORM检索对象时,默认情况下不可用。应该使用SQLAlchemy检
我试图在字典中插入新的键值对,它嵌套在另一个字典中: 我认为这应该是一个简单的处理方法,但我花了一个小时,仍然无法找到它。我可以改用NSDictionary,但我真的很想了解如何在Swift中管理嵌套的字典?
我创建了一个模型使用在sql炼金术如下所示。 然后我将同一个模型移植到Snowflake数据库。 该模型有一个字段,声明为和。当我尝试插入数据到表使用雪花控制台。我必须提供,否则它不会插入数据并返回错误。 查询(成功执行,其中提供了)- 查询(当我完全忽略列时成功执行)- 查询(执行失败,其中为空)- 它返回了一个错误- 此方法的任务是将数据插入上述数据库表中。 来自SQLAlChemy的错误-
问题内容: 我目前正在使用MySQL和Python从网络上抓取数据。具体来说,我正在抓取表数据并将其插入到数据库中。我当前的解决方案可以工作,但是我觉得它效率极低,如果不重写代码,很可能会锁定数据库。这是我当前使用的(部分代码): 执行表的每一行都很麻烦。我尝试使用,但似乎无法弄清楚如何正确访问字典的值。因此,在给定数据结构的情况下,如何在这里使用它插入数据库? 问题答案: 希望对您有帮助