Python 低安全性密码/用户名安全性错误
基本上,只是尝试创建一个简单的登录页面,它几乎没有任何安全性,但不断出现内部服务器错误,任何关于我出错的地方的帮助都将不胜感激。我试着到处找,但什么也找不到。我对Python也是相当陌生的,所以请放轻松:) 蟒蛇/烧瓶:Python 低安全性密码/用户名安全性错误,python,flask,internal-server-error,Python,Flask,Internal Server Error,基本上,只是尝试创建一个简单的登录页面,它几乎没有任何安全性,但不断出现内部服务器错误,任何关于我出错的地方的帮助都将不胜感激。我试着到处找,但什么也找不到。我对Python也是相当陌生的,所以请放轻松:) 蟒蛇/烧瓶: @app.route('/adminlogin') def admin(): return render_template('adminlogin.html') @app.route('/adminDetails', methods =['POST'])
@app.route('/adminlogin')
def admin():
return render_template('adminlogin.html')
@app.route('/adminDetails', methods =['POST'])
def adminLogin():
correctUser = 'admin'
correctPass = 'Password1'
username = request.form['username']
password = request.form['password']
if username == correctUser & password == correctPass:
adminSuccess()
else:
admin()
@app.route('/admin')
def adminSuccess():
return render_template('admin.html')
HTML:
由于我不能发表评论,我不得不在回答部分留下这条建议
您应该尝试在debug设置为true的情况下运行应用程序。这将为您提供导致错误的原因的完整回溯,而不是“内部服务器错误” 追踪后,我们都能更好地帮助你 编辑:您的回溯表明您的视图函数实际上没有返回任何内容。他们需要做出某种回应。因此,您需要做的是在
adminLogin()
视图中的if-else语句中返回这些函数调用,这一行是错误的:
if username == admin & password == Password1:
应该是:
if username == admin and password == Password1:
例如:
>>> 1 == 1 & 2 == 2
False
您可以给我们完整的错误日志,这样我们就可以找出错误
错误日志显示原因: ValueError:View函数未返回响应 因此,您需要重定向到页面
@app.route('/adminDetails', methods =['POST'])
def adminLogin():
correctUser = 'admin'
correctPass = 'Password1'
username = request.form['username']
password = request.form['password']
if username == correctUser and password == correctPass:
return redirect(url_for('adminSuccess'))
else:
return redirect(url_for('admin'))
文档:请阅读错误消息。他们大概会告诉你,
Password1
没有定义,但它没有定义。您希望该变量的值来自何处?来自HTML中的表单?哦,等等,我明白您的意思。截至目前,debug=True会导致一个错误(errno 9)。好的,这听起来可能很琐碎,但既然您说您是Python新手,我想值得一提的是def adminLogin():
没有涉及。我真的希望不是这样:pI修复了python,回溯以ValueError结束:View函数没有返回responseOkay,所以我在本地复制粘贴了整个代码,为了让它运行,我修复了一些东西。在模板中,将提交按钮更改为输入类型<代码>,在您看来,将&
更改为,
,正如这里的另一位回答者所解释的,在Python中&
的性能与您想象的不一样。我希望这有帮助:)哦。在if和else语句中,您需要在每个函数调用之前放置return
。因此,就像return admin()
一样,我没有收到任何错误,我只是在浏览器中收到了一个内部服务器错误。使用调试模式,它会给你完整的回溯。我现在已经发布了完整的回溯
if username == admin and password == Password1:
>>> 1 == 1 & 2 == 2
False
@app.route('/adminDetails', methods =['POST'])
def adminLogin():
correctUser = 'admin'
correctPass = 'Password1'
username = request.form['username']
password = request.form['password']
if username == correctUser and password == correctPass:
return redirect(url_for('adminSuccess'))
else:
return redirect(url_for('admin'))