如何使用用户输入表单创建flask sqlalchemy数据库uri并将其传递给flask应用程序配置对象

如何使用用户输入表单创建flask sqlalchemy数据库uri并将其传递给flask应用程序配置对象,flask,flask-sqlalchemy,Flask,Flask Sqlalchemy,我正在开发flask应用程序,并尝试创建用户输入表单,用户可以通过该表单连接到其数据库。我只想在功能上向用户提供,以便他们可以使用用户界面从flask应用程序连接到数据库,而不是在config.py文件中提供所有配置值 我已经编写了视图函数来呈现flask wtform并接受表单的输入,并在视图函数中创建sqlalchemy数据库uri。我无法将sqlalchemy数据库uri创建为全局的,以便可以传递给flask应用程序对象 __初始值 from flask import Flask,rend

我正在开发flask应用程序,并尝试创建用户输入表单,用户可以通过该表单连接到其数据库。我只想在功能上向用户提供,以便他们可以使用用户界面从flask应用程序连接到数据库,而不是在config.py文件中提供所有配置值

我已经编写了视图函数来呈现flask wtform并接受表单的输入,并在视图函数中创建sqlalchemy数据库uri。我无法将sqlalchemy数据库uri创建为全局的,以便可以传递给flask应用程序对象

__初始值

from flask import Flask,render_template,request
from flask_bootstrap import Bootstrap
from app.forms import ConnectDB  

def create_app():
   app = Flask(__name__)
   Bootstrap(app)
   app.config['SECRET_KEY'] = "123456789"

@app.route('/')
def index():
    form = ConnectDB()
    return render_template('index.html', form=form )
@app.route('/connect/' , methods=['GET','POST'])

def connect():
    form = ConnectDB()
    if request.method == 'POST' and form.validate():
        database = form.database.data
        username = form.username.data
        password = form.password.data
        host = form.host.data 
        port = form.port.data
        database_name = form.database_name.data

        uri = "{DATABASE_DIALECT}://{DB_USER}:{DB_PASSSWORD}@{DB_ADDRESS}:
               {DB_PORT}/{DATABASE_NAME}".format(DATABASE_DIALECT =database,
                DB_USER = username,DB_PASSSWORD = password,DB_ADDRESS =host,
                DB_PORT = port,DATABASE_NAME = database_name)

      config['SQLALCHEMY_DATABASE_URI'] = uri

from app.models import db
db.init_app(app)

# Blueprints   
from app.views import geoit
app.register_blueprint(geoit)

return app
我知道SQLALCHEMY_数据库_URI成为本地连接视图功能,无法访问视图外

但我不知道其他可能的方法,以便我可以使用用户输入在flask应用程序中加载数据库配置


请帮助解决此问题。

可能重复感谢您的回复…但这不是我问题的理想解决方案。@MayankSoni您找到解决方案了吗?