逻辑Flask——Flask模板

本文介绍了Flask中Jinja2模板的使用,从简单的模板设置到参数传递,再到内置过滤器和自定义过滤器的创建。详细探讨了Jinja2的控制语句,如if和for,以及宏的概念和应用。同时,文章讲解了include与set传参的技巧,包括全局和局部变量的设置。通过实例解析,帮助读者掌握如何在Flask中高效地使用模板。
摘要由CSDN通过智能技术生成

前言:
学习模板的目的:用于前台展示 使用 vue
页面跳转由后台控制
前后端分离 前端 template 需要导入render_template

一、简单模板

from flask import Flask,render_template
app = Flask(__name__)
@app.route('/')
def login():
	# 注意模板的路径,如果是在templates的demo文件夹下,这需要写成demo/index.html
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <input id="kw" name="wd" class="s_ipt" value maxlength="255" autocomplete="off">
</body>
</html>

在这里插入图片描述
注意:一定要将存放模板的文件夹设置为templates(默认原生的文件名)在这里插入图片描述

如果要更改默认的文件夹名templates,需要在此处指定,且性创建的文件名要和这的一致

app = Flask(__name__,template_folder='template')

二、模板传参

可以传指定的参数,交由前端页面进行展示

在这里插入图片描述

若传多个参数,可以将多个参数写成字典格式进行传递

return render_template('index.html',context=context)

在这里插入图片描述

使用**context 可以做到拆包的功能(见下)

三、jinja2内置过滤器

Jinja2模板过滤器 相当于一个函数,将变量传入到过滤器中,然后过滤器根据自己的功能,再返回到响应的值,之后再讲结果渲染到页面中。

# 绑定路由
@app.route('/')
def index():
    context = {
   
        'username':'xiaohuahua',
        'age':-18,
        'city':'hebei',
        'es':"<script>alert('hello')</script>",
        "books":['java','python','html'],
        'book':{
   'java':4},
        'shuzhi':89.0,
        'kong':' ioi ',
        'chang':'中国 河北省 廊坊市'
    }
    return render_template('jinjia_demo.html',**context)

    <p>首页</p>
    <h1>{
  { username }}</h1>
    <!--  过滤器 | 左边是待处理的参数,右侧是函数  -->
    <!--  abs过滤器 返回数值的绝对值  -->
    <h1>{
  { age|abs }}</h1>
    <!--  默认过滤器  -->
    <h1>{
  { name|default('这个人很懒,什么都没有留下')}}</h1>
<!--    <h1>{
   { es }}</h1>-->
    <!-- 关闭转义功能-->
    {% autoescape off %}
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值