Create a simple form in Flask as follow:
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, BooleanField
from wtforms.validators import Email, Length, InputRequired
class LoginForm(FlaskForm):
email = StringField('Email', validators=[InputRequired(), Length(1, 64), Email()])
password = PasswordField('Password', validators=[InputRequired()])
remember_me = BooleanField('Keep me logged in') # Notice this.
Now we can send this form to template from views.py.
@app.route('/test', methods=['GET', 'POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
# Get remember_me parameter here using request.form.get('remember_me')
flash('Invalid username or password.')
return render_template('your_template.html', form=form)
Finally render the from in template file your_template.html.
<form class="form-horizontal" method="post">
{{ form.hidden_tag() }}
<div class="col-md-offset-2 col-md-10">
<div class="checkbox">
<label>
{{form.remember_me}} Keep me logged in
</label>
</div>
</div>
<div class="form-group">
<div class="col-md-10 col-md-offset-2">
<input type="submit" class="btn btn-raised btn-primary" value="Submit">
</div>
</div>
</form>
Notice the {{form.remember_me}}. When checked, this returns remember_me as y else None in views.py
file.
NOTE: You may not be able to directly copy-paste this code, as you will certainly have to make changes based on your requirements. Please take this as reference only and it will surely help you and anyone else who gets here in future.