我正在尝试在烧瓶中创建简单的登录,但我没有在黑暗中获取数据
我的HTML看起来像
{% extends "layouts/home.html" %}
{% block body %}
{% block css %}
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='css/v2/login.css') }}">
{% endblock %}
<div class="container">
<div class="row">
<div class="col-sm-6 col-md-4 col-md-offset-4">
<div class="account-wall">
<img class="profile-img" src="https://lh5.googleusercontent.com/-b0-k99FZlyE/AAAAAAAAAAI/AAAAAAAAAAA/eu7opA4byxI/photo.jpg?sz=120"
alt="">
<form role="form" class="form-signin" method="post" enctype="multipart/form-data" action="{{url_for('login_success')}}">
<input type="text" class="form-control" placeholder="Email" required autofocus>
<input type="password" class="form-control" placeholder="Password" required>
<button class="btn btn-lg btn-primary btn-block" type="submit">
Sign in</button>
<label class="checkbox pull-left">
<input type="checkbox" value="remember-me">
Remember me
</label>
</form>
</div>
</div>
</div>
</div>
{% endblock %}
我的烧瓶代码看起来像
@app.route('/login')
def login():
return render_template('index.html')
@app.route('/login-success', methods=['POST'])
def login_success():
if request.form:
print request.form
return redirect(url_for('login'))
return redirect(url_for('login'))
但是request.form是none我无法理解可能出现的错误
答案 0 :(得分:0)
您应该将属性“name”添加到所有字段中,例如:
<input type="text" name="email" class="form-control" placeholder="Email" required autofocus>
如果您要处理表单,更好的方法是使用Flask-WTF软件包。
另请注意,您已经提出了问题,例如here。对于这些问题,通常有一个stackoverflow的答案,只需查找它。它可以节省您的时间,避免重复使用本网站。
答案 1 :(得分:0)
它不像你没有得到request.form的输出。如果你试图打印request.form然后必须在后端获得不可变字典但它必须是空的,因为每当你试图发布一个然后在表单对象中发送http表单数据。但在你的情况下,你没有给对象的键,所以你得到空字典。如果您给出密钥,那么您将获得输出。
在您的HTML中,您应该写为
<input type="text" name ="email" class="form-control" placeholder="Email" required autofocus>
在后端尝试这样的事情
print request.form['email]