在flask中,用bootstrap5对表单进行渲染。一个简单的示例

该文章演示了如何在Flask应用中集成WTForms和Bootstrap5来创建和渲染表单。首先初始化Flask应用并设置CSRF保护,然后定义一个继承自FlaskForm的ContactForm类。接着创建一个视图函数,将表单传递给模板。在HTML模板中,使用bootstrap5/form.html的宏进行表单渲染。此外,还提到了其他两种表单渲染方式。
摘要由CSDN通过智能技术生成

参考链接:

https://bootstrap-flask.readthedocs.io/en/stable/macros/#render-form

一个案例

1. 初始化一个flask app

from flask import Flask, render_template,request
from flask_wtf import FlaskForm, CSRFProtect
from wtforms.fields import *
from flask_bootstrap import Bootstrap5

# 初始化一个flask app
app = Flask(__name__)

# 设置秘钥,没有的话,会失败。作用是???
app.secret_key = 'dev'
csrf = CSRFProtect(app)

# 注意这里
bootstrap = Bootstrap5(app)  

2. 基于wtf,做一个Form

其实就是继承FlaskForm类,然后创建字段。

class ContactForm(FlaskForm):
    name = TextAreaField("Name of Student")
    email = EmailField("Input your Email")
    password = PasswordField("Input your Password")
    submit = SubmitField("提交")

3. 做一个视图函数,并将 Form 传入模板

# 这个视图函数是传入Form的
@app.route('/', methods=['GET'])
def contact():
    form = ContactForm()  # 先实例化Form
    return render_template('contact.html', form=form)


# 顺别做一个表格提交后,跳转的视图
@app.route('/out', methods=['GET', 'POST'])
def out():
    print(request.form)
    return '123'

4. 模板

注意看,下面这个模板,有几点:

  1. {{ bootstrap.load_css() }} 这句话表示冲bootstrap中导入css。如果没有这行,那么渲染会失败。
  2. {% from 'bootstrap5/form.html' import render_form %} 这句话表示导入render_form方法,用于form的渲染。
  3. {{ render_form(form) }} 这句话表示对form执行渲染,form的内容来源于app 视图函数传入。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Bootstrap-Flask Demo Application</title>
    {{ bootstrap.load_css() }}
</head>
<body>
    
    {% from 'bootstrap5/form.html' import render_form %}

    <main class="container">
        {{ render_form(form) }}
    </main>

</body>
</html>

来看看实际效果

在这里插入图片描述


拓展

  1. 其实除了render_form,还有render_fieldrender_form_row渲染方式,详细的可以看看官方文档。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我们可以使用 FlaskBootstrap 来实现一个简单的图表应用。具体步骤如下: 1. 安装 FlaskBootstrap 可以使用 pip 命令来安装 FlaskBootstrap: ``` pip install Flask pip install Flask-Bootstrap ``` 2. 创建 Flask 应用 创建一个 app.py 文件,输入以下代码: ``` from flask import Flask, render_template from flask_bootstrap import Bootstrap app = Flask(__name__) bootstrap = Bootstrap(app) @app.route('/') def index(): return render_template('index.html') if __name__ == '__main__': app.run(debug=True) ``` 在这段代码,我们首先导入了 FlaskFlask-Bootstrap 模块。然后创建了一个 Flask 应用实例,并初始化了 Flask-Bootstrap 扩展。接着定义了一个路由函数,用来渲染 index.html 模板。最后启动了 Flask 应用。 3. 创建 HTML 模板 在项目根目录下创建一个 templates 文件夹,并在其创建一个 index.html 文件,输入以下代码: ``` {% extends 'bootstrap/base.html' %} {% block content %} <div class="container"> <h1>图表</h1> <canvas id="myChart"></canvas> </div> {% endblock %} {% block scripts %} <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script> var ctx = document.getElementById('myChart').getContext('2d'); var myChart = new Chart(ctx, { type: 'bar', data: { labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'], datasets: [{ label: '# of Votes', data: [12, 19, 3, 5, 2, 3], backgroundColor: [ 'rgba(255, 99, 132, 0.2)', 'rgba(54, 162, 235, 0.2)', 'rgba(255, 206, 86, 0.2)', 'rgba(75, 192, 192, 0.2)', 'rgba(153, 102, 255, 0.2)', 'rgba(255, 159, 64, 0.2)' ], borderColor: [ 'rgba(255, 99, 132, 1)', 'rgba(54, 162, 235, 1)', 'rgba(255, 206, 86, 1)', 'rgba(75, 192, 192, 1)', 'rgba(153, 102, 255, 1)', 'rgba(255, 159, 64, 1)' ], borderWidth: 1 }] }, options: { scales: { yAxes: [{ ticks: { beginAtZero: true } }] } } }); </script> {% endblock %} ``` 在这段代码,我们首先继承了 Bootstrap 的基础模板。然后定义了一个容器和一个 canvas 元素,用来展示图表。最后在 scripts 块引入了 Chart.js 库,并使用该库创建了一个简单的柱状图。 4. 运行 Flask 应用 在终端执行以下命令启动 Flask 应用: ``` python app.py ``` 然后在浏览器访问 http://localhost:5000/,即可看到生成的图表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值