首页 > 其他分享 >Flask - jinjia2模板

Flask - jinjia2模板

时间:2022-12-23 22:00:41浏览次数:38  
标签:name render Flask list html jinjia2 template 模板

一、前言

参考https://www.cnblogs.com/poloyy/p/14999797.html

没有前端基础,看的有些些复杂,只了解简单用法就行,后面做网站如果是用到这模板的话再深入学习吧。

二、目录结构

一般来说 templates 就是存放模板的目录,如果遇到下面的报错,要注意下目录结构:

jinja2.exceptions.TemplateNotFound: index.html

三、实战示例一

1、jinja2 模板代码

<!DOCTYPE html>
<html>
<body>
  <h2>My name is {{ name }}, I am {{ age }} years old</h2>
</body>
</html>

2、flask 代码

  • 首先,需要 import render_template
  • 然后,视图函数调用 render_template,对模板 templates/index.html 进行渲染
  • render_template 包含有 2 个命名参数:name 和 age,模板引擎将模板 templates/index.html 中的变量进行替换
from flask import Flask, render_template

app = Flask(__name__)


@app.route('/')
def index():
    return render_template('index.html', name='tom', age=10)


app.run(debug=True)

浏览器运行效果:

 四、实战示例二

1、分界符

jinja2 模板文件混合 html 语法与 jinja2 语法,使用分界符区分 html 语法与 jinja2 语法。有 5 种常见的分界符:

  • {{ 变量 }},将变量放置在 {{ 和 }} 之间;
  • {% 语句 %},将语句放置在 {% 和 %} 之间;
  • {# 注释 #},将注释放置在 {# 和 #} 之间;
  • ## 注释,将注释放置在 # 之后

2、变量 语法

jinjia2模板中,使用{{var}}包围的标识符称为变量,模板渲染会将其替换为python中的变量,语法如下:{{ 变量 }}

3、jinjia2模板

包含有 3 种类型的变量:字符串、列表、字典,它们会被替换为同名的 Python 变量

<html>
{{ string }}

<ul>
    <li> {{ list[0] }}
    <li> {{ list[1] }}
    <li> {{ list[2] }}
    <li> {{ list[3] }}
</ul>

<ul>
    <li> {{ dict['name'] }}
    <li> {{ dict['age'] }}
</ul>
</html>

4、flask代码

from flask import Flask, render_template

app = Flask(__name__)


string = 'www.imooc.com'
list = ['www', 123, (1, 2, 3), {"name": "zhangsan"}]
dict = {'name': 'zhangsan', 'age': True}


@app.route('/2')
def index2():
    return render_template('index2.html', string=string, list=list, dict=dict)


app.run(debug=True)

列表的值包含字符串、数字、元组、字典,字典的值包含字符串、布尔值。

浏览器运行的效果:

 

 

标签:name,render,Flask,list,html,jinjia2,template,模板
From: https://www.cnblogs.com/Chilam007/p/17001695.html

相关文章

  • 模板方法模式javac++
    软件设计                 石家庄铁道大学信息学院 实验24:模板方法模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解模板方法......
  • Flask - request对象
    一、前言参考https://www.cnblogs.com/poloyy/p/14995215.html1、Flask中很重要的request对象浏览器访问服务端时,向服务端发送请求Flask程序使用request对象描......
  • 数据解析、正则解析、bs4解析、定位标签的操作、xpath解析、爬PM2.5历史数据、爬三国
    -数据解析-数据解析的作用:-可以帮助我们实现聚焦爬虫-数据解析的实现方式:-正则-bs4-xpath-pyquery-数据解......
  • 排序算法模板(更新中)
    快速排序#include<bits/stdc++.h>usingnamespacestd;constintN=1e6+10;intn;intq[N];voidposition(intq[],intl,intr){if(l>=r)ret......
  • 2023年元旦手抄报模板怎么打印?
    进入2022年的12月底,相信有很多人都在期待2023年的第一个法定节假日——元旦。此外也会有很多老师要求学生完成一份特殊的作业,这就是画一张元旦节手抄报。有一些家长就要开......
  • Flask request接收参数
    request导入方式request导入方式fromflaskimportrequest request.form:用于接收表单参数request.args:用于接收GET参数request.json:用于接收JSON参数request.values:获......
  • Flask 动态路由转换器
      fromflaskimportFlaskapp=Flask(__name__)@app.route('/user/<name>')defshow_user(name):return'Mynameis%s'%[email protected]('/age/<i......
  • BZOJ 3252 攻略(长链剖分模板 链的常用性质 贪心)
    BZOJ3252攻略​ 给定一棵带边权的树,选择k个叶子结点,使这些叶子结点与根节点相连,形成k条路径。输出被路径覆盖的所有边的边权和的最大值(同一条边若被重复覆盖只算一......
  • 利用frp内网穿透使flask项目外网访问
     整体的功能图如下:frp下载地址:https://github.com/fatedier/frp/releases​github.com/fatedier/frp/releases本地服务器和云主机服务器均需要下载frp,放至任意位......
  • P3369 【模板】普通平衡树
    题目链接题目要求:插入数据,删除数据,查询数的排名,查询排名为x的数,找前驱,找后继旋转操作,左旋和右旋,旋转$x$,旋转操作一定要符合先序遍历前后一致voidrotate(intx){ ......