python-jinja2模板引擎

Jinja2是Python的Web开发中常用的模板引擎,用于分离业务逻辑和页面逻辑。本文介绍了Jinja2的基本概念、语法,包括变量显示、过滤器、for循环、if语句、宏、include操作和模板继承。详细讲解了如何定义和使用过滤器、宏,以及如何进行模板继承以实现页面的高效复用。
摘要由CSDN通过智能技术生成

1. 什么是Jinja2模板引擎?

1). python的Web开发中, 业务逻辑(实质就是视图函数的内容)和页面逻辑(html
文件)分开的, 使得代码的可读性增强, 代码容易理解和维护;

2). 模板渲染: 在html文件中,通过动态赋值 ,
将重新翻译好的html文件(模板引擎生效) 返回给用户的过程。

3). 其他的模板引擎: Mako, Template, Jinja2

2. 语法

1). Jinja2变量显示语法: { { 变量名 }}、过滤器

完整的过滤器查看位置: http://jinja.pocoo.org/docs/templates/#builtin-filters
Jinja2变量内置过滤器:
safe 渲染值时不转义
capitalize 把值的首字母转换成大写,其他字母转换成小写
lower 把值转换成小写形式
upper 把值转换成大写形式
title 把值中每个单词的首字母都转换成大写
trim 把值的首尾空格去掉
striptags 渲染之前把值中所有的 HTML 标签都删掉

实现变量过滤器:

from flask import  Flask, render_template
app = Flask(__name__)

class User(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return  "<User: %s>" %(self.name)

@app.route('/')
def index():
    message = " this is a Message "
    li = ['fentiao', 'fensi', 'fendai']
    info = {
        'name': 'fentiao',
        'age':10
    }
    fentiao = User(name="粉条", age=5)
    tags = "<h1>hello world</h1>"

	# 可以传入各种类型的变量
    return  render_template('06_index.html',
                            message=message,
                            names = li,
                            info=info,
                            fentiao=fentiao,
                            tags = tags
                         )
if __name__ == '__main__':
    app.run()

编写06_use_block.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charse
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值