python flask模版源码解读render_template_string 、jinja_env,及meta.find_undeclared_variables

 render_template_string  模版替换功能

  可以将字符串"nishsih{{name}}=nnn"当作模版处理,替换其中的变量name

from flask import render_template_string
@ms.route("/")
def index():
    newsss=render_template_string("nishsih{{name}}=nnn",name="yxxx")
    print("newsss:",newsss)
    return "hello world!"

打印 

 newsss: nishsihyxxx=nnn

jinja_env.parse(tpl_tsr)返回一个模版对象

meta.find_undeclared_variables解析模版对象中的变量

from flask import render_template_string,current_app
from jinja2 import meta
@ms.route("/")
def index():
    newsss=render_template_string("nishsih{{name}}=nnn",name="yxxx")
    print("newsss:",newsss)
    tpl_tsr="1111{{name1}},2222{{name2}}"
    jinja_env=current_app.jinja_env
    parse_res=jinja_env.parse(tpl_tsr)
    print("parse_res:",parse_res)
    meta_find_res=meta.find_undeclared_variables(parse_res)
    print("meta_find_res:", meta_find_res)
    return "hello world!"

打印 

newsss: nishsihyxxx=nnn
parse_res: Template(body=[Output(nodes=[TemplateData(data='1111'), Name(name='name1', ctx='load'), TemplateData(data=',2222'), Name(name='name2', ctx='load')])])
meta_find_res: {'name2', 'name1'}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值