flask中常见的模板语言

本文深入探讨了Flask框架中Jinja2模板语言的使用,包括数据接收、循环、条件判断、安全机制、模板继承与复用、宏定义等功能,并提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

flask中的模板语言是按照jinja2中使用的

  • {{ }}
    这是可以用来接收和使用后台传输过来的数据的
  • {% %}
    可以使用一些简单的语法。
    • for 循环
    {% for i in student%}
    	{{ loop.index}} ##可以使用loop.xxx来看出循环的下表
    {% endfor %}
    
    • if
    {% if student %}
    {% endif%}
    

关于安全

flask中前端有safe的过滤器或者后端引用

from flask import makeup
a = makup(‘代码’)

这时候传过去的就不会触发安全机制被过滤。

模板复用

在jinja2中可以和django一样,使用模板继承
在base.html文件中

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>Welcome OldboyEDU</h1>
    <h2>下面的内容是不一样的</h2>
    {% block content %}
 
    {% endblock %}
    <h2>上面的内容是不一样的,但是下面的内容是一样的</h2>
    <h1>OldboyEDU is Good</h1>
</body>
</html>

在index.html中,

{% extends "index.html" %}
{% block content %}
    <form>
        用户名:<input type="text" name="user">
        密码:<input type="text" name="pwd">
    </form>
{% endblock %}

include 的用法和extend一样,不过include一般是用标签,而不是整个html代码。
而且include的性能比较差,一般可以使用extend的不适用include。

宏定义

这个和django是一样的,宏定义意思就是可以在html中设置一些函数。然后使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{% macro type_text(name,type) %}
    <input type="{{ type }}" name="{{ name }}" value="{{ name }}">
{% endmacro %}
<h2>在下方是使用宏来生成input标签</h2>
{{ type_text("one","text") }}
{{ type_text("two","text") }}
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值