flask 模板 php,Flask 模板系统

模板

基本数据类型

可以执行python语法,如:dict.get(), list['xx']

比django 更加亲近于 python

传入函数

- django,自动执行

- flask,不自动执行,需要自己加" () " 了

简单的示例

def func1(arg):

return "hello" + arg

@app.route("/index")

def index():

return render_template("s5index.html",f=func1) # 传入函数

{{f('羊驼')|safe}}

定义变量

模板中的变量是一种 " 占位符 ", 告诉模板该位置是从渲染模板时哪个数据中获取过来的

视图函数传变量

return render_template('xxx.html', 变量1=值, 变量2=值....)

return render_template('xxx.html', params=local())

示例

各类型数据后端传入

5762c7bc0e9a6fc9382494688793abe3.png

前端展示结果

85138f926956a8b829cc0dab6178592b.png

嫌麻烦可以使用 locals ,全部封装在字典里面方便些

ae9cfa4a732f093c9792d5f231eefa5b.png

前端也需要更改

a1f2586d8869b8eefe4ead48939965ef.png

过滤器

作用

变量输出之前对变量值进行过滤

语法

可以多个过滤器追加使用

{{变量|过滤器()}}

{{变量|过滤器()|过滤器()}}

常用过滤器

trim

{{var|trim}}

取消字符串两端的空格

default

{{var|default('default value')}}

如果变量为 undefined 采用默认值作为输出

truncate

{{var|truncate(length)}}

如果字符串超过指定长度,  截取,  后面显示 "..."

其他见官网,点击这里

标签

每个标签表示不同的服务器端功能

语法

{% 标签内容 %}

{% 结束标签 %}

常用标签

if 判定标签

{% if 条件 %}

满足条件时运行内容

可以是 html 代码也可以是 服务器端内容

{% endif %}

{% if 条件 %}

满足执行内容

{% else %}

不满足执行内容

{% endif %}

{% if 条件1 %}

{% elif 条件2 %}

{% else %}

{% endif %}

for 循环标签

{% for 变量 in 可迭代元素 %}

变量属于服务端的内容, 使用时需要使用 {{}} 或者 {%%} 括起来

{% endfor %}

内置变量 - loop

无需声明. 直接使用即可, 表示本次循环的一些相关信息

常用属性

loop.index  表示当前循环次数 , 从 1 开始

loop.index0  表示当前循环的下标, 从 0 开始

loop.first   表示当前循环是否是第一次循环  返回布尔值

loop.last   表示当前循环是最后一次循环 返回布尔值

macro 宏标签

相当于声明函数

通常用于代码复用,声明后在被使用的地方直接通过函数在调用即可

{% macro 声明函数(参数) %}

{% endmacro %}

{{ 声明函数(参数) }}

当前文件直接使用实例

f291042ea0902b138c4103a40ee99709.png

外部引用方式用例

通常都是将相同的部分保存在独立文件中, 然后引入文件后在要被用到的地方进行调用

声明  macro.html 模板文件

声明所用的宏

在要被使用的模板中导入, 然后通过别名即可调用宏定义的方法

{% import 'macro.html' as macros %}

{{ macros.showList() }}

模板继承

Flask使用的时Jinja2模板,所以其语法和Django无差别

类似类继承, 同样简化模板的开发

语法

父模板中

父模板中 block 正常显示无任何影响

子模板中可以对 block 进行重写

{% block 块名 %}

定义一些正常显示内容

{% endblock %}

子模板中

需要指定所继承的父模板

{% extends '父模板文件' %}

指定 block 的重写

{% block 块名 %}

重写内容

{% endblock %}

实例

base.html

Title

模板

{% block content %}

{% endblock %}

abc.html

{% extends "base.html"%}

{% block content %}

{{users.0}}

{% endblock %}

include

用法同django

{% include "form.html" %}

form.html

asdfasdf

安全

- 前端:

{{u|safe}}

- 后端:

Markup(""%(arg,))

静态文件

静态文件处理

在项目目录中创建一个 static 文件夹

70855bec3b67308b9d6c6d9d965dcadb.png

该目录中允许分门别类存储静态文件

所有文件都必须通过 /static/ 来进行访问

Flask:Flask的模板系统和静态文件

1.Flask模板系统 Django框架有自己独立的模板系统,而Flask是没有的,Flask默认采用jinjia2模板系统,jinjia2是仿写Django模板系统的一个第三方模块,但性能上要比Dj ...

Flask路由系统与模板系统

路由系统 @app.route('/user/') @app.route('/post/') @app.route('/post/ ...

flask框架模板系统

flask模板引擎 flask默认使用了Jinja2模板引擎,我们在使用模板的时候,需要在同级目录文件夹下 创建一个templates的文件夹,然后这个文件夹内放置我们想要的模板实例即可: 在正常普通 ...

【 Python】模块学习之Flask模板引擎:jinja2

原文链接:https://www.cnblogs.com/dachenzi/p/8242713.html 模板的概念 要了解jinja2,那么需要先理解模板的概念.模板在Python的web开发中广泛 ...

Django模板系统

创建模板对象Template类在django.template模板中 // 用django-admin.py startproject 命令创建一个项目目录django-admin.py startp ...

python学习笔记--Django入门二 Django 的模板系统

为了使网站更干净简洁更容易维护,页面的设计和Python的代码必须分离开.我们可以使用Django的 模板系统 (Template System)来实现这种模式. 几个简单的模板标签(tag):   ...

第四章:Django 的模板系统(转)

在之前的章节中,你可能觉得例子中视图返回文本有点不妥.即是, HTML 是直接写在 Python 代码中的.     这种做法会导致这些问题:     要做任何设计上的更改就必须改写 Python 代 ...

django模板系统基础

模板系统基础Django模板是一个string文本,它用来分离一个文档的展现和数据 模板定义了placeholder和表示多种逻辑的tags来规定文档如何展现 通常模板用来输出HTML,但是Djang ...

python MVC、MTV 框架介绍 Django 模板系统常用语法

Django 框架简介一.MVC框架和MTV框架1.MVC 全名Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分.优势: 耦合性低 重用性高 生命 ...

随机推荐

*HDU3357 判环

Stock Chase Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

RAID的简单介绍

该文章全部复制转载于:http://blog.jobbole.com/83808/,只为做笔记供自己查看 简介 RAID是一个我们经常能见到的名词.但却因为很少能在实际环境中体验,所以很难对其原理 能 ...

windows 批处理把所有java源码导入一个txt文件中

首先在src下搜*.java,把搜到的文件全拷出来放在allsrc目录下, 然后在allsrc目录下建个run.bat,键入以下内容for %%i in (*.java)  do type %%i&g ...

Setting up Nutch 2.1 with MySQL to handle UTF-8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值