“很多同学在DIY自己的web的时候,苦于没有优秀的前端辅助,无法做出好看实用的web,下面介绍一种现在比较实用的整合方法”
01
—
Jinja2基本用法
在正式开始整合之前,我们先大致说下需要用到的一些知识点:
Jinja2:是Python下一个被广泛应用的模版引擎,他的设计思想来源于Django的模板引擎,并扩展了其语法和一系列强大的功能。其中最显著的一个是增加了沙箱执行功能和可选的自动转义功能,这对大多应用的安全性来说是非常重要的。他基于unicode并能在python2.4之后的版本运行,包括python3。
我们比较常用到的语法有:
1、变量
{
{变量名}}
jinja2模板中使用 { { }} 语法表示一个变量,它是一种特殊的占位符。当利用jinja2进行渲染的时候,它会把这些特殊的占位符进行填充/替换,jinja2支持python中所有的Python数据类型比如列表、字段、对象等。
2、控制结构
{% %}
比如我们常用的for循环
{% for category in categories %}
<option {
{ 'selected=selected' if item['n_protocol_id']==category.n_id else '' }} value="{
{ category['n_id'] }}">{
{ category.n_id}}</option>
{% endfor %}
3、注释
{# #}
{# 这个是jinja2的注释语法 #}
4、宏
{% macro render_pagination(endpoint,pagination) %}
<p>这个是jinja2宏的语法形式</p>
{% endmacro%}
5、继承
比如我们的web所有的页面渲染都需要加入一些共同的元素,那么我们可以使用jinja2提供的继承功能来实现
首先我们在base.html某个位置中定义一个块,作为后续继承用
{% block main_content %}
<li><a href="#"> 这个block是基本的元素,后续页面可以用得到</a></li>#}
{% endblock%}