jinjia基础语法

简介: jinjia基础语法

for in

{% for i in list %}
{% endfor %}
{% for k,v in dict.items() %}
{% endfor %}

if else

{% if i=1 %}
   {{ i }}
{% elif i!=1 %}
   {{ i }}
{% else %}
   {{ i }}
{% endif %}

with

{% with data %} 
{% endwith %}

url_for

<form class="form-inline" action="{{ url_for('web.search') }}" method="get">

filename

<link rel="stylesheet" href="{{ url_for('static', filename='css/personal.css')}}">

get_flashed_messages

{% set messages = get_flashed_messages() %} # 得到flash 
    {{ message }}
{% set messages = get_flashed_messages(with_categories=true, category_filter=["message"]) %} # 得到flash 
    {{ message }}

管道命令 隐式接收

字符串操作

safe:禁用转义

<p>{{ 'hello' | capitalize }}</p>

capitalize:把变量值的首字母转成大写,其余字母转小写

<p>{{ 'hello' | capitalize }}</p>

lower:把值转成小写

<p>{{ 'HELLO' | lower }}</p>

upper:把值转成大写

<p>{{ 'hello' | upper }}</p>

title:把值中的每个单词的首字母都转成大写

<p>{{ 'hello' | title }}</p>

reverse:字符串反转

<p>{{ 'olleh' | reverse }}</p>

format:格式化输出

<p>{{ '%s is %d' | format('name',17) }}</p>

striptags:渲染之前把值中所有的HTML标签都删掉

<p>{{ '<em>hello</em>' | striptags }}</p>

truncate: 字符串截断

<p>{{ 'hello every one' | truncate(9)}}</p>

列表操作

first:取第一个元素

<p>{{ [1,2,3,4,5,6] | first }}</p>

last:取最后一个元素

<p>{{ [1,2,3,4,5,6] | last }}</p>

length:获取列表长度

<p>{{ [1,2,3,4,5,6] | length }}</p>

sum:列表求和

<p>{{ [1,2,3,4,5,6] | sum }}</p>

sort:列表排序

<p>{{ [6,2,3,1,5,4] | sort }}</p>

自定义过滤器

# -*- coding:utf-8 -*-
__author__ = 'guoqianqian'


from flask import Flask
from flask_script import Manager
from flask import render_template


app = Flask(__name__)
manager = Manager(app)


def mylen(arg):#实现一个可以求长度的函数
    return len(arg)


# 该函数实现给定一个区间返回区间的内容
def interval(test_str, start, end):#过滤器中传递多个参数,第一个参数为被过滤的内容,第二第三个参数需要自己传入
    return test_str[int(start):int(end)]


env = app.jinja_env
env.filters['mylen'] = mylen#注册自定义过滤器
env.filters['interval'] = interval#注册自定义过滤器


@app.route("/")
def index():
    test_str = "hello"
    return render_template("index.html", test_str=test_str)


if __name__ == "__main__":
    manager.run()

第二种方法

@app.template_filter("listreverse")
def do_listreverse(li):
    li.reverse()
    return li
目录
相关文章
|
7月前
|
Java 编译器
基础语法篇
基础语法篇
|
6月前
|
编译器 C语言 C++
|
7月前
|
Java
基础语法一
基础语法一
35 2
|
7月前
|
Java
基础语法二
基础语法二
37 1
|
存储 安全 编译器
C++超基础语法
C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(object oriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。
|
7月前
|
存储 编译器 C++
C++基础语法
C++基础语法
56 0
|
7月前
|
存储 C# 开发者
C#基础语法
C#基础语法
35 0
|
编译器 C语言 C++
【C++】C++基础语法(上)
C++基础语法呢,有非常多的细节,需要大家慢慢来摸索,仔细的回顾,反复的复习
101 1
|
安全 编译器 程序员
【C++】C++基础语法(下)
C++基础语法呢,有非常多的细节,需要大家慢慢来摸索,仔细的回顾,反复的复习
74 1
|
编译器 C语言 C++