7、模板

配置模版路径

'template_path': os.path.join(BASE_PATH, 'templates')

渲染并返回给客户端

self.render('index.html')

变量与表达式

class IndexHandler(RequestHandler):
    def get(self, *args, **kwargs):
        dic = {
            'name': 'mxt',
            'age': 18,
            'gender': 'female',
        }
        temp = 100
        info = {
            'a': 1,
            'b': 2
        }
        self.render('index.html', **dic, num=temp, info=info)
{{name}}  # mxt
{{gender}}  # female
{{num}}  # 100
{{info["a"]}}  # 1

流程控制

if

{% if flag==1 %}

111

{% elif flag==2 %}

222

{% else %}

333

{% end %}

for

{% for i in arr %}

{{i}}

{% end %}

while

待补充

函数

static_url()

获取配置的静态目录,并将参数拼接到静态目录后,返回新的路径。

用法:


优点:

  • 修改静态目录后不需改变模板
  • static_url创建了一个基于文件内容的hash值,并将其添加到URL末尾,当做查询参数。这个hash值总能保证加载到都是最新文件,而不是以前的缓存版本。不管在开发还是先上阶段都是很有必要的。

自定义函数

class FuncHandler(RequestHandler):
    def get(self, *args, **kwargs):
        def mySum(a, b):
            return a + b
        self.render('func.html', mySum=mySum)
{{mySum(1,5)}}

转义

tornado默认开启自动转义功能,能防止网站受到恶意攻击。

关闭自动转义

  • raw

    关闭当前标签的自动转义

    {% raw tagStr %}
    
  • autoescape

    关闭当前模板的自动转义

    {% autoescape None %}
    
  • 在配置中修改

    关闭所有模板的自动转义,

    "autoescape": None
    
  • escape()

    关闭自动转义后,可以使用该方法对特定变量开启转义

    {{escape(tagStr)}}
    

继承

{% extends "base.html" %}

{% block main %}

{% end %}

静态文件

  • static_path

    告诉tornado从文件系统中的某一个特定位置提供静态文件。

    示例

    'static_path': os.path.join(BASE_PATH, 'static'),
    

    请求方式

    http://127.0.0.1:8092/static/html/index.html
    

    引入其他文件

    
    
    
  • StaticFileHandler

    tornado内置的用来提供静态资源文件的handler。

    可以通过tornado.web.StaticFileHandler来映射静态文件。

    参数:

    • path:提供静态文件的根路径
    • default_filename:访问路由中未指定文件名时,默认提供的静态文件名

    注意:

    最好在路由规则的最下面使用,否则可能会导致其他路由不能匹配。

    使用示例:

    # 放在最下面
    (r'/(.*)$', tornado.web.StaticFileHandler, {'path': os.path.join(config.BASE_PATH, 'static/html')}),
            
    (r'/(.*)$', tornado.web.StaticFileHandler,{'path': os.path.join(config.BASE_PATH, 'static/html'), 'default_filename': 'index.html'}),
    

你可能感兴趣的:(7、模板)