博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flask-jinja2
阅读量:4950 次
发布时间:2019-06-11

本文共 3711 字,大约阅读时间需要 12 分钟。

渲染数据

数据准备

后端定义几个字符串,用于传递到前端

STUDENT = {
'name': 'Old', 'age': 38, 'gender': '中'},STUDENT_LIST = [ {
'name': 'Old', 'age': 38, 'gender': '中'}, {
'name': 'Boy', 'age': 73, 'gender': '男'}, {
'name': 'EDU', 'age': 84, 'gender': '女'}]STUDENT_DICT = { 1: {
'name': 'Old', 'age': 38, 'gender': '中'}, 2: {
'name': 'Boy', 'age': 73, 'gender': '男'}, 3: {
'name': 'EDU', 'age': 84, 'gender': '女'},}

Jinja2模板中的流程控制

逻辑语法

Jinja2模板语言中的 for

{% for foo in g %}{
% endfor %}

Jinja2模板语言中的 if

{% if g %}{
% elif g %} {
% else %} {
% endif %}

变量

{
{}}

接下来,我们对这几种情况分别进行传递,并在前端显示成表格

1. 使用STUDENT字典传递至前端

前端页面

    
Title
{
% for foo in stu %}
{
% endfor %}
姓名 年龄 性别
{
{ foo.name }}
{
{ foo.age }}
{
{ foo.gender }}

后端代码

from flask import Flask,render_template,requestapp = Flask(__name__)STUDENT = {
'name': 'Old', 'age': 38, 'gender': '中'},@app.route('/login',methods=["POST","GET"])def login(): if request.method == "GET": return render_template("login.html",stu=STUDENT)if __name__ == '__main__': app.run("0.0.0.0", 9876)

2. STUDENT_LIST 列表传入前端Jinja2 模板的操作

前端页面

    
Title
{% for foo in stu %}
{% endfor %}
姓名 年龄 性别
{
{ foo.get("name") }}
{
{ foo.age }}
{
{ foo["gender"] }}

上面我们用了三种取值方式,这里foo就是每个字典

后端代码

from flask import Flask,render_template,requestapp = Flask(__name__)STUDENT_LIST = [    {
'name': 'Old', 'age': 38, 'gender': '中'}, {
'name': 'Boy', 'age': 73, 'gender': '男'}, {
'name': 'EDU', 'age': 84, 'gender': '女'}]@app.route('/login',methods=["POST","GET"])def login(): if request.method == "GET": return render_template("login.html",stu=STUDENT_LIST)if __name__ == '__main__': app.run("0.0.0.0", 9876)

3.STUDENT_DICT 大字典传入前端 Jinja2 模板

 前端页面

    
Title
{
% for foo in stu %}
{
% endfor %}
序号 姓名 年龄 性别
{
{ foo }}
{
{ stu.get(foo).name }}
{
{ stu.get(foo).age }}
{
{ stu.get(foo).gender }}

后端代码

from flask import Flask,render_template,requestapp = Flask(__name__)STUDENT_DICT = {    1: {
'name': 'Old', 'age': 38, 'gender': '中'}, 2: {
'name': 'Boy', 'age': 73, 'gender': '男'}, 3: {
'name': 'EDU', 'age': 84, 'gender': '女'},}@app.route('/login',methods=["POST","GET"])def login(): if request.method == "GET": return render_template("login.html",stu=STUDENT_DICT)if __name__ == '__main__': app.run("0.0.0.0", 9876)

在遍历字典的时候,foo 其实是相当于拿出了字典中的Key

 

Markup

该方法和django中的safe一样都是防止xss攻击、

from flask import Flask,render_template,requestfrom markupsafe import Markupapp = Flask(__name__)@app.route('/login',methods=["POST","GET"])def login():    if request.method == "GET":        my_in = Markup("")        return render_template("login.html",ss=my_in)if __name__ == '__main__':    app.run("0.0.0.0", 9876)

前端页面生成的标签:

 

转载于:https://www.cnblogs.com/songzhixue/p/11166418.html

你可能感兴趣的文章
scala的REPL shell的调用
查看>>
SQL中Group By的使用
查看>>
Mybatis映射原理,动态SQL,log4j
查看>>
哪个微信编辑器比较好用?
查看>>
错误org/aopalliance/intercept/MethodInterceptor解决方法
查看>>
Pylint在项目中的使用
查看>>
使用nginx做反向代理和负载均衡效果图
查看>>
access remote libvirtd
查看>>
gdb调试中出现No symbol table is loaded. Use the "file" command.问题
查看>>
(4) Orchard 开发之 Page 的信息存在哪?
查看>>
ASP.NET中 GridView(网格视图)的使用前台绑定
查看>>
图像加载
查看>>
关于zxing生成二维码,在微信长按识别不了问题
查看>>
Haskell学习-高阶函数
查看>>
手动通知扫描SD卡主动生成缩略图
查看>>
js中tagName和nodeName
查看>>
PC-XP系统忘记密码怎么办
查看>>
Android实例-打电话、发短信和邮件,取得手机IMEI号(XE8+小米2)
查看>>
深入了解Oracle ASM(二):ASM File number 1 文件目录
查看>>
SQL数据库学习系列之一
查看>>