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'}