| You'd use Flask-WTF for forms. https://flask-wtf.readthedocs.org/en/latest/ It can also handle file uploads. https://flask-wtf.readthedocs.org/en/latest/form.html You'd need to define a model which describes the form fields, handle it in your view, and add it to your page template. forms.py from flask_wtf import Form
from wtforms import TextField, PasswordField
from wtforms.validators import DataRequired
class LoginForm(Form):
email = TextField('Email', validators=[DataRequired()])
password = PasswordField('Password', validators=[DataRequired()])
views.py from forms import LoginForm
@app.route('/login', methods=('GET', 'POST'))
def login():
form = LoginForm()
if form.validate_on_submit():
email = form.data.get('email', None)
password = form.data.get('password', None)
do_login_stuff(email, password)
else:
return render_template('login_page.html', form=form)
login_page.html {% extends "base.html" %}
{% block content %}
<h3>Log in:</h3>
<form method="POST" action="{{ url_for('login') }}">
{{ form.hidden_tag() }}
{{ form.email.label }} {{ form.email }}
{{ form.password.label }} {{ form.password }}
<input type="submit" value="Log in">
</form>
{% endblock %}
|