JoshuaYu

动手写一个简单的Web框架(模板渲染)

在百度上搜索jinja2,显示的大部分内容都是jinja2的渲染语法,这个不是Web框架需要做的事,最终,居然在Werkzeug的官方文档里找到模板渲染的代码。

关于模板渲染即render_template,简单实现代码其实只有几行,下面是我的代码:

def render_template(path, template, **kwargs):
    # 获取模板文件夹位置
    template_path = os.path.join(path, \'templates\')
    # 实例化Environment
    jinja_env = Environment(loader=FileSystemLoader(template_path), autoescape=True)
    # 获取得到模板
    t = jinja_env.get_template(template)
    # 返回渲染的模板
    return Response(t.render(kwargs), mimetype=\'text/html\')

这样就好了,关于调用,和Flask有几分相似,但是由于简化,需要传入Web程序的路径参数,以定位得到templates文件夹位置,关于其实例化等等代码可参考我的上一篇博客

import os
def Render(request):
    name = request.args.get(\'name\', \'World\')
    return render_template(os.path.dirname(__file__), \'test1.html\', name=name)
app.add_url_rule(rule=\'/render\', view_func=Render, methods=[\'GET\'])

运行效果:

分类:

技术点:

相关文章:

  • 2021-11-02
  • 2020-03-19
  • 2018-01-16
  • 2021-05-10
  • 2021-11-04
  • 2021-07-08
  • 2021-11-07
猜你喜欢
  • 2021-11-12
  • 2021-08-03
  • 2021-12-10
  • 2021-10-15
  • 2021-04-01
  • 2019-06-02
  • 2021-08-09
相关资源
相似解决方案