def setup(): if not config.get('setup', bool): abort(404) if request.method == 'POST': if not check_keys(): flash(error_message) return render_template('setup.html') username = request.form['username'] password = request.form['password_1'] email = request.form['email'] db_uri = request.form['database_uri'] # create database config.set('database_uri', db_uri) app.config['SQLALCHEMY_DATABASE_URI'] = db_uri db.drop_all() db.create_all() # create admin user admin = NewUser(username, password, email) admin.admin = True admin.active = True admin.create() # generate secret key secret_key = os.urandom(24) config.set('secret_key', secret_key) app.config['SECRET_KEY'] = secret_key # set a default upload directory blackboard_root = os.path.dirname(os.path.abspath(__file__)) config.set('upload_destination', blackboard_root + '/static/upload') # disable setup config.set('setup', 'False') flash(messages.setup_finished, 'message') return redirect(url_for('login')) else: return render_template('setup.html')