在烧瓶python中返回redirect()的麻烦

时间:2018-04-24 03:33:17

标签: python flask

我认为解决方案应该是:

返回重定向(url_for(main))

因为我的终端告诉我我要搬到' /'像我应该的那样,但它不起作用。我可以得到

127.0.0.1 - - [23/Apr/2018 23:01:36] "GET / HTTP/1.1" 200 -

它实际上并没有把我带到那里。

这里必须有一个非常愚蠢的简单错误。我想要做的就是,在将新的用户名和密码存储到数据库中后,返回主屏幕,该屏幕列在' /'中。我基本上在另一个页面中有这个确切的过程,所以我没有真正看到问题。这只是一个粗略的注册页面,以满足项目的要求,它比任何东西都更具象征意义。

我还可以确认输入确实进入数据库并且"这里"得到印刷。

我觉得

return redirect('/') 

是有效的一行。

https://www.tutorialspoint.com/flask/flask_redirect_and_errors.htm

@app.route('/signUp',methods=['POST','GET'])
def signUp():

    conn = mysql.connect()
    cur = conn.cursor()

    try:
        _name = request.form['inputName']
        _email = request.form['inputEmail']
        _password = request.form['inputPassword']

        if _name and _email and _password:

            cur.callproc('sp_createUser',(_name,_email,_password,))
            print ("Registered")
            data = cur.fetchall()

            conn.commit()
            json.dumps({'message':'User created successfully !'})
            print('here')
            return redirect('/')#not redirecting to home

        else:
            return json.dumps({'html':'<span>Enter the required fields</span>'})


    except Exception as e:
        return json.dumps({'error':str(e)})
    finally:
        cur.close() 
        conn.close()


@app.route("/")
def main():
     return(render_template('Senty.html'))

我还会发布终端结果以防万一

127.0.0.1 - - [23/Apr/2018 21:45:06] "GET /showSignUp HTTP/1.1" 200 -
Registered
here
127.0.0.1 - - [23/Apr/2018 21:45:14] "POST /signUp HTTP/1.1" 200 -

3 个答案:

答案 0 :(得分:0)

可能你需要使用:

return redirect(url_for('/'))

答案 1 :(得分:0)

return redirect(url_for('signUp'))我相信它应该是函数的名称。

答案 2 :(得分:0)

“/”路由

中存在语法错误
@app.route("/")
def main():
     return(render_template('Senty.html'))

正确的代码是:

return render_template('Senty.html')