Tornado提升之模板

模板

  • 模板路径:

      "template_path":os.path.join(BASE_DIRS,'templates'),
    
  • 渲染并返回给客户端

    • self.render()

        class homeHandler(RequestHandler):
            def get(self):
                self.render("home.html")
      
  • 变量与表达式

    • 语法

      • {{var}}变量
      • {{expression}}表达式
    • 实例:

         class homeHandler(RequestHandler):
             def get(self):
                 temp = 100
                 per = {
                     "name":"luciano",
                     "age":21,
                 }
                 self.render("home.html",num = temp,per=per)
                 ----------------------
         num:{{num}}
         {{per["name"],per["age"]}}
      
    • 注意:tornado中不能使用"点"语法(django可以)

  • 流程控制

    • if

      • 格式:

          {% if 表达式1 %}
          语句1
          {% elif 表达式2%}
          语句2
          {% else %}
          语句3
          {% end %}
        
    • for

      • 格式:

          {% for 变量 in 可迭代集合 %}
          语句
          {% end %}
        
    • while不用

  • 函数

    • static_url()

    • 路径:“static_path”:os.path.join(BASE_DIRS,‘static’),

    • 实例:

         <link rel="stylesheet" href='{{static_url("css/home.css")}}'>
      
    • 作用:获取配置的静态目录,并将参数拼接到静态目录后面,并返回新的路径

    • 优点:修改目录不需要修改url、static_url创建了一个基于文件内容的hash值,
      并将其添加到URL末尾(当一个查询参数),这个hash值总能保证加载的都是最新的文件,
      而不是以前的版本。不论时开发阶段还是上线阶段都时必要的

  • 自定义函数

      class functionHandler(RequestHandler):
          def get(self):
          
              def mySum(n1,n2):
                  return n1+n2
              self.render("market.html",mySum=mySum)
              
              --------------------------
      {{mySum(100,99)}}
    
  • 转义(转成字符串)

    • tornado 自动转义 防止网站恶意攻击

    • 手动关闭自动转义:

      • raw :关闭一行(常用)

          {% raw str %}
        
      • autoescape None : 关闭当前文档的自动转义

          {% autoescape None %}
        
      • 在配置中修改 settings : 关闭当前项目的的自动转义

          "autoescape":None,
        
    • 手动开启局部转义

      • escape()函数
        • 作用:在关闭自动转义后,可以使用该方法对特定的变量进行转义

            {{escape(str)}}
          
  • 继承

    • 基本和Django一样
      • 父模板(挖坑)

          {% block main %}
          
          {% end %}
        
      • 子类模板(填坑)

          {% extends "base.html" %}
        
          {% block main %}
          <h1>这里是购物车</h1>
          {% end %}
        
  • 静态文件

    • static_path
      • 作用:告诉tornado从文件系统中的某一个特定的位置提供静态文件

      • 实例

          "static_path":os.path.join(BASE_DIRS,'static'),
        
      • 请求方式:

          http://127.0.0.1:8080/static/html/index.html
        
      • 引入其他文件

          <link rel="stylesheet" href="{{static_url('css/home.css')}}">
           <script type="text/javascript" src="{{static_url('js/test.js')}}"></script>
        
    • staticHandler
      • 因为网站大多数首页都是静态网站,不会用服务器中的路由

      • 使用原因:因为static_path对于用户来说体验不佳(请求方式差)

      • 本质:它是tornado预制的来提供静态资源文件的Handler

      • 作用:可以通过"tornado.web.StaticHandler"来映射静态文件

      • 请求方式:

          http://127.0.0.1:8080/index.html
        
      • 使用方式:

          # staticHandler,注意要放在所有路由的最下面
          (r'/(.*)$',tornado.web.StaticFileHandler,
          {  "path":os.path.join(config.BASE_DIRS,"static/html"),"default_filename":"index.html"})# (.*)$-->匹配任何东西
          参数说明:
              path:用来指定提供静态文件的根路径
              default_filename:用来指定访问路由中未指明文件名时,默认提供的静态文件
          注意:最好在路由位置的最后一行,否则其他路由会不好使
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值