首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用flask_sqlalchemy正确注释类型?

如何使用flask_sqlalchemy正确注释类型?
EN

Stack Overflow用户
提问于 2020-07-08 12:15:09
回答 2查看 2.5K关注 0票数 4

我有一个使用SQLAlchemy / flask_sqlalchemy的工作瓶应用程序。为了给您一个印象,我创建了一个超级精简版本(apps.pymodels.py)。应用程序起作用了。问题是mypy抱怨db.Modelmodels.py中的使用。

代码语言:javascript
运行
复制
error: Name 'db.Model' is not defined

原因很可能是在调用db.init_app(app)时创建的。我怎么才能解决这个问题?还有比忽视它更好的选择吗?

代码语言:javascript
运行
复制
# type: ignore

app.py

代码语言:javascript
运行
复制
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

def create_app():
    app = Flask(__name__, template_folder="templates")
    db.init_app(app)
    return app

models.py

代码语言:javascript
运行
复制
from app import db

class User(db.Model):
    __tablename__ = "users"
    id = db.Column(db.String, primary_key=True, nullable=False)
    username = db.Column(db.String, unique=True)
EN

回答 2

Stack Overflow用户

发布于 2020-07-16 20:16:35

你需要https://pypi.org/project/sqlalchemy-stubs/

来自use.html的报价

MyPy与SQLAlchemy模型的结合 如果您对Python使用PEP 484静态类型检查器,则MyPy插件将包含在用于SQLAlchemy的类型存根中。该插件是针对SQLAlchemy声明性模型定制的。

票数 3
EN

Stack Overflow用户

发布于 2020-07-13 20:48:30

既然你在使用flask_sqlalchemy,你试过这个吗,

models.py

代码语言:javascript
运行
复制
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
db = SQLAlchemy(app)


class User(db.Model):
    __tablename__ = "users"
    id = db.Column(db.String, primary_key=True, nullable=False)
    username = db.Column(db.String, unique=True)

编辑这是我的app.py的样子

代码语言:javascript
运行
复制
from .settings import ProdConfig


def create_app(config_object=ProdConfig):
    app = Flask(__name__)
    app.config.from_object(config_object)
    register_blueprints(app)
    return app
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62794599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档