的Python瓶错误ValueError异常:View功能没有返回
问题描述:
这是我的代码响应:的Python瓶错误ValueError异常:View功能没有返回
@app.route('/registercheck', methods=['GET', 'POST'])
def registercheck():
checkusername = g.db.execute('select uname from users where uname = ?', (request.form['usernameR'],))
checkpassword = g.db.execute('select pword from users where uname = ?', (request.form['usernameR'],))
arraycheckr = checkpassword.fetchall()
if request.method == 'POST':
encryptpword = hashlib.md5()
encryptpword.update(request.form['passwordR'])
encryptpword.digest()
if len(arraycheckr) == 0 and checkpassword == encryptpword:
if len(request.form['usernameR']) < 6:
flash('Username must be at least 6 characters')
return redirect(url_for('register'))
if len(request.form['passwordR']) < 4:
flash('Password must be at least 4 characters')
return redirect(url_for(register))
if checkusername == request.form['usernameR']:
flash('Username is already taken')
return redirect(url_for(register))
else:
g.db.execute('insert into users (uname, pword) values (?, ?);', (request.form['usernameR'], encryptpword))
g.db.commit()
os.mkdir(os.path.join(app.config['UPLOAD_FOLDER'], request.form['usernameR']))
return redirect(url_for('upload'))
我看了一下类似这样的其他职位,但我还是不明白为什么它抛出这个问题。重定向看起来很好(在html中)。
答
您接受一个GET请求,你永远不会检查,最后你应该渲染一个模板。
@app.route('/registercheck', methods=['GET', 'POST'])
def registercheck():
checkusername = g.db.execute('select uname from users where uname = ?', (request.form['usernameR'],))
checkpassword = g.db.execute('select pword from users where uname = ?', (request.form['usernameR'],))
arraycheckr = checkpassword.fetchall()
if request.method == 'POST':
encryptpword = hashlib.md5()
encryptpword.update(request.form['passwordR'])
encryptpword.digest()
if len(arraycheckr) == 0 and checkpassword == encryptpword:
if len(request.form['usernameR']) < 6:
flash('Username must be at least 6 characters')
return redirect(url_for('register'))
if len(request.form['passwordR']) < 4:
flash('Password must be at least 4 characters')
return redirect(url_for(register))
if checkusername == request.form['usernameR']:
flash('Username is already taken')
return redirect(url_for(register))
else:
g.db.execute('insert into users (uname, pword) values (?, ?);', (request.form['usernameR'], encryptpword))
g.db.commit()
os.mkdir(os.path.join(app.config['UPLOAD_FOLDER'], request.form['usernameR']))
return redirect(url_for('upload'))
return render_template('some_file.html')
+0
仍然不起作用,它表示:方法不允许 该方法不允许用于请求的URL。 –
+0
你能显示更新的代码吗? – VKolev
那么,如果方法不是POST,你的代码会返回什么?或者,如果它发布并且密码无效? –
当请求不是“POST”请求等时会发生什么? –