基于hi-nginx的web开发(python篇)——使用jinja2模板引擎

简介: 模板引擎的使用在web开发中是不可避免和必要的。hi.py框架使用jinja2作为模板引擎。为了使用hi.py提供的jinja2引擎,首先需要引入它:from hi import hi,template然后就是使用它:1 @app.

模板引擎的使用在web开发中是不可避免和必要的。hi.py框架使用jinja2作为模板引擎。

为了使用hi.py提供的jinja2引擎,首先需要引入它:

from hi import hi,template

然后就是使用它:

1 @app.route(r'^/template/(?P<name>\w+)/(?P<age>\d+)/?$',['GET'])
2 def tpl(req,res,param):
3     param['title']='jinja2 测试'
4     tpl_engine = template(os.path.join(os.getcwd(),'python/templates'))
5     res.content(tpl_engine.file_render('b.html',param))
6     res.status(200)

创建template实例需要一个参数,它指定引擎搜索模板文件的目录,在上面的代码中就是hi-nginx安装目录下的python/templates文件夹。

然后准备数据,数据使用dict来收集,使用file_render方法通过指定模板文件和数据dict来输出字符串内容。

如果使用的不是模板文件,而是模板字符串,那就使用string_render方法,它的第一个参数指的是字符串模板。

 

在上面的例子中,模板文件b.html内容如下:

1 {% extends 'a.html'  %}
2 {% block body %}
3     {{ super()  }}
4     继承
5 {{ name  }} is {{ age }} years old.
6 {% endblock %}

其中使用了jinja2中的模板继承功能,见第一行。因此,还有个模板文件a.html:

<html>
    <head><title>{{ title }}</title></head>
    <body>{% block body %}
        <p>Hello:{{ name }},you are {{ age }} years old.</p>
        <p>加载器负责从诸如文件系统的资源加载模板</p>
        {% endblock %}
    </body>
</html>

 

在本例中,中文内容已经出现。因此需要使用utf-8编码。hi-nginx已经全面支持python3,所以,尽情中文吧!

 

目录
相关文章
|
11天前
|
数据库 开发者 Python
web应用开发
【9月更文挑战第1天】web应用开发
26 1
|
2天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的摄影网上预约管理系统
基于Python+Vue开发的摄影网上预约管理系统(前后端分离),影楼婚纱摄影,这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的在线摄影预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
14 6
基于Python+Vue开发的摄影网上预约管理系统
|
1天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的新闻管理系统
这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的新闻管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
11 4
基于Python+Vue开发的新闻管理系统
|
5天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的酒店客房预订管理系统
基于Python+Vue开发的酒店客房预订管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的酒店客房预订管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
24 7
基于Python+Vue开发的酒店客房预订管理系统
|
3天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的房产销售管理系统
基于Python+Vue开发的房产销售管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的房产销售管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
15 4
基于Python+Vue开发的房产销售管理系统
|
3天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的美容预约管理系统
基于Python+Vue开发的美容预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的美容诊所预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
14 3
基于Python+Vue开发的美容预约管理系统
|
5天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的蛋糕商城管理系统
该项目是基于Python+Vue开发的蛋糕商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的蛋糕商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
14 7
|
5天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的农产品商城管理系统
该项目是基于Python+Vue开发的农产品商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的农产品商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
17 7
|
6天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的体育用品商城管理系统
该项目是基于Python+Vue开发的体育用品商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的体育用品销售商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
17 7
|
7天前
|
数据采集 Java 数据挖掘
Java IO异常处理:在Web爬虫开发中的实践
Java IO异常处理:在Web爬虫开发中的实践