欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 《每天5分钟用Flask搭建一个管理系统》第5章:表单处理

《每天5分钟用Flask搭建一个管理系统》第5章:表单处理

2024/10/25 17:23:49 来源:https://blog.csdn.net/eclipsercp/article/details/140047578  浏览:    关键词:《每天5分钟用Flask搭建一个管理系统》第5章:表单处理

第5章:表单处理

5.1 Web表单的基本概念

Web表单是收集用户输入的一种方式。在Flask中,表单通常与HTML表单结合使用,并通过POST方法提交。

示例代码:HTML表单

<!-- templates/login.html -->
<form method="post" action="/login"><input type="text" name="username" placeholder="Username"><input type="password" name="password" placeholder="Password"><input type="submit" value="Login">
</form>
5.2 Flask-WTF扩展的使用

Flask-WTF是一个集成了WTForms的Flask扩展,它简化了表单的处理和验证。

示例代码:安装Flask-WTF

pip install Flask-WTF

示例代码:创建表单类

from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField
from wtforms.validators import InputRequiredclass LoginForm(FlaskForm):username = StringField('Username', validators=[InputRequired()])password = PasswordField('Password', validators=[InputRequired()])
5.3 表单验证和错误处理

表单验证确保用户输入的数据符合预期格式。如果验证失败,可以显示错误信息。

示例代码:表单验证

from flask import render_template, flash, redirect, url_for
from forms import LoginForm@app.route('/login', methods=['GET', 'POST'])
def login():form = LoginForm()if form.validate_on_submit():# 处理登录逻辑return redirect(url_for('index'))return render_template('login.html', form=form)if __name__ == '__main__':app.secret_key = 'your_secret_key'  # 需要设置secret_key

在模板中显示错误信息:

示例代码:显示错误信息

{% for error in form.username.errors %}<span style="color: red;">{{ error }}</span>
{% endfor %}
5.4 文件上传的处理

文件上传是Web表单的常见功能。Flask-WTF也支持文件上传,但需要配置一些额外的设置。

示例代码:创建支持文件上传的表单

from flask_wtf import FlaskForm
from wtforms import StringField, FileField
from wtforms.validators import InputRequired, FileAllowedclass UploadForm(FlaskForm):avatar = FileField('Avatar', validators=[InputRequired(),FileAllowed(['jpg', 'png'], 'Images only!')])

示例代码:处理文件上传

from flask import request@app.route('/upload', methods=['GET', 'POST'])
def upload():form = UploadForm()if form.validate_on_submit():file = request.files['avatar']# 保存文件逻辑return render_template('upload.html', form=form)

确保在配置文件中设置了MAX_CONTENT_LENGTH以限制上传文件的大小。

5.5 总结

本章介绍了Web表单的基本概念,以及如何使用Flask-WTF扩展来处理表单验证和文件上传。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com