我想同时传递表格数据和烧瓶中的列表值。但是表单数据不会出现在输出中。我是python的新手。抱歉,我的问题听起来太愚蠢了! 这是烧瓶代码
from flask import Flask
from flask import render_template,request
app = Flask(__name__)
@app.route('/')
def my_form():
return render_template('a.html')
@app.route('/', methods=['GET', 'POST'])
def my_form_post():
result = request.form['username']
list1=['Who is the president of India?','Who is the captain of Team
India?','In which year was Mahatma Gandhi born?'];
return render_template('welcome.html', result=result, lis=list1)
if __name__ == '__main__':
app.run(debug=True)
这是html代码:
<html>
<head>
<title>Welcome!</title>
</head>
<body>
Welcome to the quiz {{result.username}}
{{lis[0]}}
</body>
</html>
这是表单页面:
<html>
<head>
<title>Welcome!</title>
</head>
<body>
<form method="POST" action="/">
Welcome to the quiz. Please Enter your name to proceed!
Name: <input type="text" name="username">
<input type="submit" name="submitdata">
</form>
</body>
</html>
我得到的输出为:
欢迎参加测验谁是印度总统?
为什么输入的名称不出现在输出中?但是,如果我只更改此行代码
return render_template('welcome.html', result=result)
我将输出作为“欢迎来到测验xyz”。 那为什么不能在render_template()中传递多个变量?
答案 0 :(得分:0)
你不能拥有这个:
@app.route('/')
def my_form():
return render_template('a.html')
@app.route('/', methods=['GET', 'POST'])
def my_form_post():
您已经定义了两个具有相同标识符'/'
的路由。将使用后一个,而第一个将被完全忽略。
首次执行代码(作为GET)时,没有提供username
字符串的形式,因此它不会被呈现,这解释了您的输出,“欢迎参加测验谁是印度总统? ?”