我正在尝试从HTML表单中获取用户名和密码的输入,因此我可以将它们输入到python脚本中并运行程序。我需要将request.form放在哪里以接收两个变量?
app.py
from flask import Flask, render_template, url_for, request
app = Flask(__name__)
@app.route('/', methods=['POST', 'GET'])
def home():
rh = Robinhood()
rh.login(username="EMAIL", password="PASSWORD")
projectpath = request.form['projectFilepath']
return render_template('index.html')
index.html
<form action="{{ url_for('home') }}" method="post">
<input type="text" name="projectFilepath">
<input type="submit">
</form>
对于flask和python非常新,感谢您的帮助!
在您的html中,使用占位符和名称跟随输入类型;以及一个可选的但建议的错误消息(放在div之外);为“用户名”和“密码”的每个方法分别赋予其request.form值:
<div class="form">
<form action="" method="post">
<input type="text" placeholder="Username" name="username" value="{{
request.form.username }}">
<input type="password" placeholder="Password" name="password" value="{{
request.form.password }}">
<input class="btn btn-default" type="submit" value="Login">
</form>
{% if error %}
<p class="error">Error: {{ error }}
{% endif %}
</div>
在您的python文件中,将您的request.form放在/ login下的if语句之后,并使用POST和GET方法:
@app.route('/login', methods=['POST', 'GET'])
def home():
error = None
if request.method == 'POST':
if request.form['username'] != 'admin' or request.form['password'] != 'admin':
error = 'Error Message Text'
else:
return redirect(url_for('home'))
return render_template('index.html', error=error)