美文网首页
7、模板

7、模板

作者: 马小跳_ | 来源:发表于2018-06-03 17:07 被阅读15次

    配置模版路径

    '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 %}
    <p>111</p>
    {% elif flag==2 %}
    <p>222</p>
    {% else %}
    <p>333</p>
    {% end %}
    

    for

    {% for i in arr %}
    <p>{{i}}</p>
    {% end %}
    

    while

    待补充
    

    函数

    static_url()

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

    用法:

    <link rel="stylesheet" href="{{static_url('css/index.css'}}">
    

    优点:

    • 修改静态目录后不需改变模板
    • 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
      

      引入其他文件

      <link rel="stylesheet" href="{{static_url('css/index.css')}}">
      <script type="text/javascript" charset="utf-8" src="{{static_url('js/index.js')}}"></script>
      
    • 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、模板

          本文链接:https://www.haomeiwen.com/subject/rwgjsftx.html