sem*_*ght 12 html python forms post flask
我正试图在Flask中为我自己的教育设置一个简单的表格.我有一个带有此表单代码的login.html页面:
<form action="{{ url_for('login') }}" method="post">
<div>
<label for="username">Username</label>
<div>
<input type="text" id="username" name="username" placeholder="Username">
</div>
</div>
<div>
<label for="password">Password</label>
<div>
<input type="password" id="password" name="password" placeholder="Password">
</div>
</div>
<div >
<input class="btn" type="submit">
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
我正在使用以下代码来接收它,但Flask返回一个空,request.form所以我无法处理它.
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
request.form['username']
...
Run Code Online (Sandbox Code Playgroud)
我现在真的不想学习另一个库(WTForms),而且我正在使用bootstrap,这将增加头痛.我在Flask/HTML中没有看到什么?
Res*_*nce 16
我有这个问题,但这是因为我忘了name为我的输入元素分配一个属性而我试图通过id属性来引用访问表单数据
即
我的HTML和Python 是如下图所示
HTML
<input type="text" id="usernameTxtBx">
Run Code Online (Sandbox Code Playgroud)
蟒蛇
request.form['usernameTxtBx']
Run Code Online (Sandbox Code Playgroud)
我现在做了什么:
HTML
<input type="text" name="username" id="usernameTxtBx">
Run Code Online (Sandbox Code Playgroud)
蟒蛇
request.form['username']
Run Code Online (Sandbox Code Playgroud)
我还需要确保我正在使用POST请求.一个GET请求在我的python代码中给了我一个空字典.
OP没有犯这些错误.但这可能会帮助那些偶然发现这个问题的人.
小智 6
我有那个问题。一些工具(例如邮递员)或某些库或Web浏览器会以Flask无法识别为已发布值的方式发送数据。从我的角度来看,这是一个瓶颈问题。
这是我遵循的解决方法:1-我使用json发送了信息。看看这个:
2-我不是使用以下方法获取参数:value = request.form [“ myparamname”]我使用了以下方法:
json_data = request.get_json(force=True)
value = json_data["myparamname"]
Run Code Online (Sandbox Code Playgroud)
ajk*_*hol -3
登录.html
{% extends "layout.html" %}
{% block content %}
<div class="form">
<h2>Sign In</h2>
{% for field in form.errors %}
{% for error in form.errors[field] %}
<div class="alert alert-error">
<strong>Oops...</strong> {{error}}.
</div>
{% endfor %}
{% endfor %}
<form action="{{ url_for('login') }}" method=post>
{{ form.hidden_tag() }}
{{ form.email.label }}
{{ form.email }}
{{ form.password.label }}
{{ form.password }}
<p> <input id="submit" name="submit" type="submit" class="btn btn-inverse" value="Sign In"></p>
</form>
</div>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
表格.py
class SigninForm(Form):
email = TextField("email", [validators.Required("Please enter your email")])
password = PasswordField('Password', [validators.Required("Please enter a password.")])
submit = SubmitField("Sign In")
Run Code Online (Sandbox Code Playgroud)
然后在您的视图中导入signinform并创建您的登录方法,如下所示
@app.route('/login', methods=['GET', 'POST'])
def signin():
form = SigninForm()
if form.validate_on_submit():
session['email'] = form.email.data
flash('You are logged in')
return redirect(url_for('dashboard'))
return render_template('signin.html', form=form)
Run Code Online (Sandbox Code Playgroud)
请参阅本教程以获取更详细的说明 http://pypix.com/python/building-flask-blog-part-1/
| 归档时间: |
|
| 查看次数: |
11490 次 |
| 最近记录: |