title: how to create flask sqlalchemy database uri using user input form and passed to the flask application config object
body: <p>I am working on flask app and trying to create user input form through which user can connect to their database.I just want to provide functionally to the users so that they can make a connection from flask application to the database using user interface instead of providing all configuration values in config.py file. </p>
  
  <p>I have written view functions to render flask wtform and accepting input from form and creating sqlalchemy database uri indside a view function.I am not able create sqlalchemy database uri as a globally so that it can be pass to flask application object.</p>
  
  <p>__ init__.py</p>
  
  <pre><code>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
  </code></pre>
  
  <p>I know SQLALCHEMY_DATABASE_URI became local to connect view function and can not access outside of view.</p>
  
  <p>But I don't know other possible way so that i can load database configurations in the flask app using user input.</p>
  
  <p>Please help out for this problem.</p>