PythonFlask错误值错误:视图函数没有返回响应

2024-09-24 20:38:04 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码:

@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中也是如此)。在


Tags: formurlforexecutedblenreturnif
1条回答
网友
1楼 · 发布于 2024-09-24 20:38:04

你接受一个永远不会检查的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')

相关问题 更多 >