Я создаю приложение фляги, интегрированное с расширением фляги flask_user.
Тем не менее, я продолжаю получать следующую ошибку, когда пытаюсь запустить приложение:
'SQLALCHEMY_DATABASE_URI' нет в приложении. config и AttributeError: у объекта «SQLAlchemy» нет атрибута «config»
Вот мой код:
app.py
from flask import Flask,render_template
from modules.database import create_db
from config import config
from flask_user import login_required, current_user,UserMixin
app = Flask(__name__)
config_name='development'
app.config.from_object(config[config_name])
db,User,Stripe,Plans,Usage,Tasks=create_db(app)
@app.route('/')
def home():
return 'Hello'
if __name__ == '__main__':
app.run()
config.py
class Config:
USER_APP_NAME='App Test'
USER_AFTER_REGISTER_ENDPOINT='plans'
class Dev_Config(Config):
ENV='development'
DEBUG=True
SQLALCHEMY_DATABASE_URI='sqlite:///dev_db.db'
CSRF_ENABLED=True
SECRET_KEY = '2345frtjislkmnqwers'
class Prod_Config(Config):
DEBUG=False
config={'development': Dev_Config,
'production': Prod_Config}
database.py
def create_db(app):
db = SQLAlchemy(app)
class User(db.Model, UserMixin):
id=db.Column(db.Integer,primary_key=True)
password = db.Column(db.String(255),nullable=False, server_default='')
email = db.Column(db.String(255),nullable=False,unique=True)
confirmed_at = db.Column(db.DateTime())
plan_id=db.Column(db.Integer, db.ForeignKey('plans.id'),default=1)
active=db.Column(db.Boolean(),nullable=False, server_default='0')
...
class Tasks(db.Model):
id=db.Column(db.Integer,primary_key=True)
task=db.Column(db.String(50),nullable=False,unique=True)
credits=db.Column(db.Integer,nullable=False)
db.create_all()
db_adapter=SQLAlchemy(db,User)
user_manager=UserManager(db_adapter,app)
return (db,User,Stripe,Plans,Usage,Tasks)
Когда я запускаю колбу, база данных успешно создается, однако сообщение об ошибке
Я не понимаю, почему он возвращает ошибку «SQLALCHEMY_DATABASE_URI», которая отсутствует в app.config, поскольку явно в config.py был настроен SQLALCHEMY_DATABASE_URI. и присутствует там.
Кроме того, что означает, что объект сообщения об ошибке «SQLAlchemy» не имеет атрибута «config»? И почему это может происходить?
Кто-нибудь может помочь? Большое спасибо заранее.