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

34 篇文章 0 订阅
5 篇文章 0 订阅

第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 InputRequired

class 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, FileAllowed

class 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扩展来处理表单验证和文件上传。

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flask一个轻量级的Web框架,适合用于快速搭建小型的Web应用或后台管理系统。下面是一个简单的使用Flask搭建后台管理系统的示例: 1. 安装Flask 在命令行中输入以下命令进行安装: ``` pip install flask ``` 2. 创建Flask应用 在项目目录下创建一个名为 `app.py` 的文件,输入以下代码: ```python from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') if __name__ == '__main__': app.run(debug=True) ``` 在上面的代码中,我们创建了一个Flask应用,并定义了一个路由 `/`,该路由返回一个名为 `index.html` 的模板。 3. 创建模板 在项目目录下创建一个名为 `templates` 的文件夹,并在其中创建一个名为 `index.html` 的模板文件,输入以下代码: ```html <!DOCTYPE html> <html> <head> <title>后台管理系统</title> </head> <body> <h1>欢迎来到后台管理系统</h1> </body> </html> ``` 在上面的代码中,我们定义了一个简单的HTML页面,其中包含一个标题和一段欢迎文本。 4. 运行应用 在命令行中输入以下命令启动Flask应用: ``` python app.py ``` 访问 `http://127.0.0.1:5000/` 即可看到后台管理系统的页面。 至此,一个简单的后台管理系统搭建好了。当然,这只是一个最基础的模板,你可以根据自己的需要进行更改和扩展。例如,你可以使用数据库来存储数据,并编写对应的API来进行数据的增删改查。你也可以使用Flask提供的插件来实现用户认证、文件上传等功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值