我使用sqlalchemy将一个json映射到多个表。我有两张桌子,每一张都有一节课。
其中一个表有一个参数,它是一个字典列表,必须映射到第二个表的不同列。
from sqlalchemy import Column, Integer, String, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
Base = declarative_base()
class A(Base):
__tablename__ =
我对FastAPI和SqlAlchemy在PostgreSQL中的使用都很陌生。我一直在努力创建一些模型,这些模型一开始就很不错。
class Parent(Base):
__tablename__ = "parents"
uid = Column(Integer, primary_key=True)
children = relationship("Child", back_populates="parent")
class Child(Base):
__tablename__ = "children"
u
我有一个包含三个表(A、B和C)的sqlalchemy schema,它们通过一对多的外键关系( A->B)和(B->C)相关,并以SQLite作为后端。我创建了单独的数据库文件来存储数据,每个文件都使用完全相同的sqlalchemy模型,并运行相同的代码将数据放入其中。
我希望能够从所有这些单独的数据库中复制数据,并将它们放入一个新的数据库文件中,同时保留外键关系。我尝试使用以下代码将数据从一个文件复制到一个新文件:
import sqlalchemy
from sqlalchemy.ext import declarative
from sqlalchemy import Co
我有:
res = db.engine.execute('select count(id) from sometable')
返回的对象为sqlalchemy.engine.result.ResultProxy。
如何从res获取计数值?
Res不是通过索引访问的,但我已经弄清楚了这一点:
count=None
for i in res:
count = res[0]
break
一定有更简单的方法,对吧?那是什么?我还没发现呢。注:数据库是postgres数据库。
我有一个SQLAlchemy设置,其中一个模型没有存储在数据库中。相反,数据来自web服务,而其他模型只存储一个主键来引用它。
如何在仍然使用SQLAlchemy关系的情况下实现这一点?我现在正在本地数据库中缓存数据,并在发生变化时从web服务进行更新,但这意味着我正在存储数据的冗余副本。我希望根本不在本地存储。请考虑以下内容:
Base = declarative_base()
# Web service-backed model
class User(Base):
__tablename__ = 'user'
id = Column(Integer, pr
我正在尝试从PgSQL数据库中获取列名和数据类型。结果看起来应该类似于以下查询的输出:
SELECT table_name, column_name, data_type
FROM information_schema.columns
WHERE table_schema = 'public'
我尝试使用automap_base()和inspect()获取此信息。不幸的是,automap_base()不映射任何架构表,inspect对象也没有提供列名和数据类型的方法。我也尝试过这样的column_descriptions方法:
In [1]:
from sqlalchemy.e
我有一个烧瓶项目,使用sqlalchemy独立模式,它不是为烧瓶项目编写的(因此只使用纯SQLAlchemy)。
片段
class Drive(Base):
"""
A drive in an edit station.
"""
__tablename__ = 'drives'
id = sqlalchemy.Column(sqlalchemy.Integer,
primary_key=True,
在我的应用程序项目中,我有一个用于处理现有数据库的自动化程序。当我用烧瓶运行命令在我的pc上启动它时,它可以正常工作,并将数据保存在数据库中。现在我试图将我的应用程序放到debian服务器上,当我使用gunicorn运行这个应用程序时,它会返回给我这个错误:
sqlalchemy.exc.ArgumentError: Mapper mapped class Applications->applications could not assemble any primary key columns for mapped table 'applications'.
这是我的mo
我想使用Eve框架来创建REST并执行数据验证。但是我想使用带有关系数据库后端的SQLAlchemy版本的Eve。Eve-SQLAlchemy文档没有提到如何做到这一点。
例如,我将有一个名为People的db表
# sql_schema.py
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import column_property, relationship
Base = declarative_base()
class People(Base):
__tablename_
我正在尝试删除flask-sqlalchemy中的一个表条目,但是我得到了以下错误。
AttributeError: 'Join' object has no attribute 'delete'
(我在下面包含了整个错误消息)。我试图从is中删除的表
class Groups(db.Model):
id = db.Column(db.Integer, primary_key=True)
leader_id = db.Column(db.Integer, db.ForeignKey('user.id'))
name =
我有一个使用sqlalchemy ORM映射从sqlite数据库派生的复杂对象网络。我有几个很深的嵌套:
for parent in owner.collection:
for child in parent.collection:
for foo in child.collection:
do lots of calcs with foo.property
我的分析显示,在这个用例中,sqlalchemy工具花费了很多时间。
问题是:我不会在运行时更改对象模型(映射属性),所以一旦加载了它们,我就不需要插装,甚至根本不需要任何sqlal
动机
举一个简单的例子,其中一列数据需要用SQL中的枚举类型表示:
+------------------------------------------+
| user |
+----+------+-----+------------------------+
| id | name | age | relationship_status_id |
+----+------+-----+------------------------+
| 1 | John | 27 | 3
我正在编写一个小的sqlalchemy填充程序,通过一些轻量级的数据转换从MySQL数据库中导出数据-主要是更改字段名称。我当前的脚本运行良好,但需要我在本质上描述我的模型两次-一次是在类声明中,一次是作为要迭代的字段名列表。
我正在尝试弄清楚如何使用内省来识别作为列访问器的行对象上的属性。下面的代码几乎可以完美地工作:
for attr, value in self.__class__.__dict__.iteritems():
if isinstance(value, sqlalchemy.orm.attributes.InstrumentedAttribute):
我有两张桌子: Eca_users和Eca_user_emails,一个用户可以有很多电子邮件。我向用户和他们的电子邮件求助。而且我不习惯将它们加载到MS数据库中。用户可以更新他们的电子邮件,所以在这个json中,我可以用新的(或更改的)电子邮件获得相同的用户。我的代码
# some import here
Base = declarative_base()
class Eca_users(Base):
__tablename__ = 'eca_users'
sql_id = sqlalchemy.Column(sqlalchemy.Integer(), pr
我坚持使用flask和flask-sqlalchemy从MySQL数据库中删除多对多记录。似乎sqlalchemy正在尝试从关系表中删除所有行,其中a的id与链接到b的id相同。
错误(示例):
sqlalchemy.orm.exc.StaleDataError: DELETE statement on table 'ksiazka_autor' expected to delete 1 row(s); Only 0 were matched.
或
sqlalchemy.orm.exc.StaleDataError: DELETE statement on table '
作为背景:我正在创建一个基于现有数据库模式的ORM。-这是因为python应用程序不会是所述数据库的“所有者”。
在这个数据库中,有一个名为"task“的表和一个名为"task_notBefore__task_relatedTasks”的表,后者是"task“表中不同条目之间的多到多关系。
现在,automap_base()已经实现了对这些关系的自动检测,就像描述的那样。然而,对于我的情况来说,这是失败的,而且没有建立任何关系。
然后,我尝试手动创建这种关系:
from sqlalchemy.ext.automap import automap_base
from sq
我有两个表( contract_items)和contracts,后者将外键设置为第一个表)。
当使用SQLAlchemy将新数据从列表中插入到postgre数据库时,我基本上是这样做的:
for row in list:
# Get contract and item from row
...
session.add(contract)
session.add(contract_item)
# Do some select statements (which will raise an auto-flush)
...
session.c
这可能是一个非常容易的问题,但作为我的新手,我不得不问这里,抱歉,因为我还没有找到答案,到目前为止,在玩了很多次。
我使用烧瓶和python食物类型列表,允许用户在表单中输入食物项目,并通过验证器验证这一点,以确保条目在列表中。从表单中输入的食物项目然后存储在db表中。
我希望用预定义的食品类型数据库中的sql查询来替换这个列表方法,同时使用SQLAlchemy,因为这是应用程序中其他地方使用的。
该守则的简化版本如下:
#db connection is already setup and working OK in another part of the app
DB_URL = '