【发布时间】:2021-04-08 08:56:57
【问题描述】:
当使用redirect(url_for('Some End-Point')) 而不是render_template() 时,我想将一些参数从flask 传递给我的HTML 表单。我已经访问过这两个问题
-
redirect while passing arguments
-
How can I pass arguments into redirect(url_for()) of Flask?
但他们都没有我正在寻找的答案。经过一些冲浪后,我发现我必须为此使用session,但问题是我实际上也不知道如何使用它。当我使用这个时:return redirect(url_for('register', neg_resp="Username Already Taken"))
问题是,我的输出消息确实生成但带有URL,因此我的jinja template没有收到它。来自120.0.0.1:5000/register/的链接更改为120.0.0.1:5000/register/?=Username Already Taken
当我这样做时:return redirect(url_for('register'), neg_resp="Username Already Taken")
生成错误,TypeError: redirect() got an unexpected keyword argument 'neg_resp'这是我的 Python 代码
# Setting Up Route for Register Page
@app.route('/register/', methods=['GET', 'POST'])
def register():
# Fetching Form Data
user = {
"name": request.form.get('name'),
"email": request.form.get('email'),
"username": request.form.get('username'),
"password": request.form.get('password'),
"tasks":[]
}
# Inserting data to Database and Redirecting to Login Page after Successful Registration
if user['name'] != None:
user['password'] = pbkdf2_sha256.encrypt(user['password'])
if mongo.db.appname.find_one({"username": user["username"]}):
return redirect(url_for('register'), neg_resp="Username Already Taken")
else:
mongo.db.appname.insert(user)
return redirect(url_for('login', pos_resp="Registered Successfully"))
return render_template('register.html')
错误
TypeError: redirect() got an unexpected keyword argument 'neg_resp'
【问题讨论】: