草庐IT

SQLALCHEMY_TRACK_MODIFICATIONS

全部标签

python - SQLAlchemy 查询,加入关系并按计数排序

我有两个SQLAlchemy模型设置如下:###############PostModel###############classPost(db.Model):id=db.Column(db.Integer,primary_key=True)title=db.Column(db.String(250))content=db.Column(db.String(5000))timestamp=db.Column(db.Integer)author_id=db.Column(db.Integer,db.ForeignKey('user.id'))likes=db.relationship('

python - 如何将自动过滤器添加到与 SQLAlchemy 的关系中?

我正在使用SQLAlchemy0.5rc,我想为一个关系添加一个自动过滤器,这样每次它尝试为该关系获取记录时,如果它们被标记,它就会忽略“远程”记录作为“logically_deleted”(子表的bool字段)例如,如果一个对象“父”有一个“子”关系3条记录,但其中一条在逻辑上被删除,当我查询“父”时,我希望SQLA获取只有两个child的父对象..我应该怎么做?通过向primaryjoin添加“和”条件关系的参数?(例如“Children.parent_id==Parent.idandChildren.logically_deleted==False”,但是这样写“and”是否正确

python - SQLAlchemy 中的条件过滤

有没有办法在SQLAlchemyORM中有条件地向查询添加filter参数?例如想象一下,我有以下内容:q=session.query(X)ifa:q.filter(X.y=='a')elifb:q.filter(X.y=='a',X.z=='b')elifc:q.filter(X.y=='a',X.p=='d')有没有办法说只加X.z=='b'如果b无需在每个过滤器中读取(X.y=='a')。看来我可以做q.filter(X.y=='a').filter(X.y=='b')但这会改变正在执行的查询。 最佳答案 尝试将查询收集到列表

python - 如何在 sqlalchemy 查询中将日期时间更改为字符串?

这个问题在这里已经有了答案:Howtoovercome"datetime.datetimenotJSONserializable"?(34个答案)关闭6年前。这是我的代码,查询Notification.create_timeresult=session.query(Notification.content,cls.is_read,Notification.create_time).join(cls,Notification.id==cls.notification).filter(and_(cls.user==user_id)).order_by(Notification.create

python - sqlalchemy 的 Flask 应用上下文

我正在Flask中开发一个小型的restapi。Api具有注册请求并生成单独线程以在后台运行的路由。这是代码:defdostuff(scriptname):new_thread=threading.Thread(target=executescript,args=(scriptname,))new_thread.start()线程启动,但当我尝试从executescript函数插入数据库时​​出错。它提示db对象未在应用程序中注册。我正在动态创建我的应用程序(使用api作为蓝图)。这是应用程序的结构-run.py##runnerscript-config-development.py-

python - 如何限制/偏移 sqlalchemy orm 关系的结果?

如果我有一个用户模型和文章模型,用户和文章是一对多的关系。这样我就可以访问这样的文章user=session.query(User).filter(id=1).one()printuser.articles但这会列出用户的所有文章,如果我想将文章限制为10篇怎么办?在rails中有一个all()方法,它可以有限制/偏移量。在sqlalchemy中也有一个all()方法,但是没有参数,如何实现呢?编辑:似乎user.articles[10:20]是有效的,但是sql没有在查询中使用10/20。所以实际上它会加载所有匹配的数据,并在python中进行过滤? 最佳

Python 的 SQLAlchemy 不会清除辅助(多对多)表?

User和Task之间存在多对多关系。我希望在删除Task或User时清除“辅助表”(意思是促进多对多关系的表)。我如何为此配置SQLAlchemy?这是一些示例python代码,它演示了我遇到的问题。注意:这段代码是完全独立的,只需要sqlalchemy模块。如果您复制并粘贴此代码,您应该能够在没有任何副作用的情况下运行它,并且您自己会看到相同的行为。脚本的最后一行显示,当我删除相应的任务时,“辅助表”中的相关行并没有被删除。本例中所有断言均通过。fromsqlalchemyimportcreate_engine,Column,Integer,Text,Table,ForeignKe

python - 将对象添加到 SQLAlchemy 关联对象时出现 KeyError

我有两个表,tablet和correspondent:classCorrespondent(db.Model,GlyphMixin):#PKcolumnandtablenameetc.comefromthemixinname=db.Column(db.String(100),nullable=False,unique=True)#associationproxytablets=association_proxy('correspondent_tablets','tablet')def__init__(self,name,tablets=None):self.name=nameiftab

python - 使用 SQLAlchemy 更新 PostgreSQL 数组

我正在尝试使用SQLAlchemyCore中的SQL语句更新PostgreSQL表上的整数数组。我首先尝试使用查询生成器,但也不知道该怎么做。我相信Psycopg2,也就是我正在使用的方言,可以自动将数组形成为PostgreSQL可以接受的格式。这是表架构:CREATETABLEsurveys(survey_idserialPRIMARYKEY,question_ids_orderedINTEGER[],created_atTIMESTAMPNOTNULLDEFAULTnow(),);以及SQLAlchemy语句:survey_id=46question_ids_ordered=[23

python - 使用 SQLAlchemy 连接到数据库

我正在尝试连接到本地计算机上的数据库。importsqlalchemyengine=sqlalchemy.create_engine('mssql+pyodbc://localhost\\SQLEXPRESS/NCM')失败并出现以下错误:DBAPIError:(pyodbc.Error)('IM002','[IM002][Microsoft][ODBCDriverManager]Datasourcenamenotfoundandnodefaultdriverspecified(0)(SQLDriverConnect)')并且还输出这个警告:C:\Miniconda\envs\bees