【问题标题】:Flask - How to load database with config from Flask config?Flask - 如何使用 Flask 配置中的配置加载数据库?
【发布时间】:2022-07-08 03:44:24
【问题描述】:

我的文件夹结构如下:

- app.py
app
    - __init__.py
    - database.py

在 app.py 我有:

from app import create_app
app = create_app()

我的 init.py 看起来像:

from flask import Flask
from app.database import db_session, init_db

database.py 看起来像这样

from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base


engine = create_engine('sqlite:///rapporteur.db')
db_session = scoped_session(sessionmaker(autocommit=False,autoflush=False,bind=engine))

该 sqlite 路径当前被硬编码为 raporteur.db 但它应该从配置中加载,因为我不希望它硬编码,但不幸的是烧瓶应用程序尚未加载。那我该怎么做呢?

【问题讨论】:

    标签: flask


    【解决方案1】:

    您可以使用 flask-sqlalchemy 并在配置文件中设置 SQLALCHEMY_DATABASE_URI。

    class Config:
        SQLALCHEMY_DATABASE_URI = 'sqlite:///rapporteur.db'
    

    然后在你的 init.py

     from youApp import Config
    
      def create_app(config_class=Config)
         app = Flask(__name__)
         app.config.from_object(config_class)
         db = SQLAlchemy()
         db.init_app(app)
    
         return app
    

    【讨论】:

      猜你喜欢
      • 2016-04-21
      • 1970-01-01
      • 2013-02-07
      • 1970-01-01
      • 2019-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多