我正在尝试在访问任何其他页面之前设置登录页面。因此,到目前为止,代码还可以正常工作,但是如果我访问'/home',它将直接进入该页,而不需要登录。
我试着理解在线解决方案,比如需要用sqlacalchemy登录,但似乎没有任何效果,我完全迷路了。我想这不需要登录。
以下是我的代码:
from dbscriptdeploy import dbupdate
from flask.templating import render_template
from flask import Flask, request, url_for, redirect
DBupdate = dbupdate()
app = Flask(__name__) #create the Flask app
@app.route('/success')
def deploy_success():
return render_template("success.html")
def deploy_script(sql):
res = DBupdate.dbvalues_get(sql)
return res
@app.route('/', methods=['GET', 'POST'])
def login_page():
error = None
if request.method == 'POST':
if request.form['username'] != 'admin' or request.form['password'] != 'admin':
error = 'Invalid Credentials. Please try again.'
else:
return redirect(url_for('form_example'))
return render_template('login.html', error=error)
@app.route('/home', methods=['GET', 'POST'])
def form_example():
res = None
error = ''
try:
if request.method == 'POST':
sql = request.form.get('sql')
res = deploy_script(sql)
if res:
return redirect(url_for('deploy_success'))
else:
error = "*Invalid Value. Please try again."
return render_template('home.html', error=error)
except Exception as e:
return render_template('home.html', error=error)
if __name__ == '__main__':
app.run(debug=True) #run app in debug mode on port 5000
login.html代码:
Flask Intro - login pagePlease login
{% if error %}
Error: {{ error }}
{% endif %}
所以我希望在成功登录之后,他们应该被定向到\主页,否则他们应该被再次定向到登录页面。