У меня есть работающее приложение Flask, которое использует SQLAlchemy/flask_sqlalchemy
. Чтобы дать вам представление, я создал супер урезанную версию (apps.py
и models.py
). Приложение работает. Проблема в том, что mypy
жалуется на использование db.Model
в models.py
:
error: Name 'db.Model' is not defined
Причина, вероятно, в том, что это создается при вызове db.init_app(app)
. Как я могу это исправить? Есть ли лучший вариант, чем игнорировать его?
# type: ignore
app.py
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
модели.py
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)
app.py
файл? Вы даже не пытаетесь запустить его, когда возникает ошибка? (app.run()
) Кстати, использование приложения в функции менее удобно, вам действительно не следует этого делать.... Попробуйте поместитьdb
иapp
как глобальные переменные, чтобы вы' г быть в состоянии сделатьdb = SQLAlchemy(app)
- person Patch   schedule 14.07.2020