flask_sqlalchemy在Pycharm中query无提示的解决方案

文章讨论了在PyCharm中使用SQLAlchemy时,由于动态加载导致PyCharm的自动补全功能无法识别Model的query属性。为了解决这个问题,提出了在Model类中固定添加query属性(db.Query=db.session.query_property())的方法,这样可以确保PyCharm提供提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原因-属性动态加载

https://stackoverflow.com/questions/39099117/pycharm-sqlalchemy-autocomplete-not-working

def _include_sqlalchemy(obj):
    for module in sqlalchemy, sqlalchemy.orm:
        for key in module.__all__:
            if not hasattr(obj, key):
                setattr(obj, key, getattr(module, key))

因此使用Model.query时,会动态增添query属性,这也就使得pycharm没有提示
在这里插入图片描述

解决方案-固定增添Query属性

class Aa(db.Model):
    query: db.Query = db.session.query_property()	# 这里新增query属性
    __tablename__ = 'aa'
    name = db.Column(db.String)
    age = db.Column(db.Integer)
    uuid = db.Column(db.Integer, primary_key=True, server_default=db.FetchedValue())

可以看到,pycharm存在提示了
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值