模板继承和UImodul 和 UImethods


  • 模板的继承

    • {% extends path %}

      • path为templates下的相对路径
    • {% block block_name %}content{% end %}

      • block_name:块名字
      • content:中间包裹的内容
      • 和django的block一致
    • {% include path %}
      • 包含的模板路径
    • 参考链接:https://www.cnblogs.com/ivy-blogs/p/10654806.html
  • 函数跟类的导入:
  • UImodul和UImethods
    • 新建个util包
    • 在里面新建uimethods.py和uimodules.py两个文件
    • 在定义app的路由所在的文件下导入这两个文件
    • Application给ui_methods和ui_modules传参等于导入的文件名
       from tornado.web import RequestHandler, Application
      from tornado.httpserver import HTTPServer
      from tornado.options import options, define
      from tornado.ioloop import IOLoop
      from util import uimethods, uimodules define('port', default=7981, type=int) class IndexHandle(RequestHandler):
      def get(self):
      self.render('index.html') application = Application(
      handlers=[
      (r'/', IndexHandle)
      ],
      template_path='templates',
      ui_methods=uimethods,
      ui_modules=uimodules
      ) if __name__ == '__main__':
      options.parse_command_line()
      app = HTTPServer(application)
      app.listen(options.port)
      IOLoop.current().start()
    • ulmethods使用
      • def test(self): return 'test'
      • ulmethods里面的方法第一个参数必须为self
    • ulmodules使用
      •  from tornado.web import UIModule
        
         class TestModule(UIModule):
        def render(self, *args, **kwargs):
        return 'TestModule'

        先建的类必须继承自UIModule类,当该类实例化的时候,会自动执行render方法

      •  from tornado.web import UIModule
        
         class TestModule(UIModule):
        def render(self, *args, **kwargs):
        self.render_string('index.html')

        渲染页面

      •  from tornado.web import UIModule
        
         class TestModule(UIModule):
        def render(self, *args, **kwargs):
        self.render_string('index.html') def javascript_files(self):
        return 'your javascript_files path' def css_files(self):
        return 'your jcss_files path'

        静态资源加载,如果路径有多个,则返回列表形式

      •  <!DOCTYPE html>
        <html lang="en">
        <head>
        <meta charset="UTF-8">
        <title>Title</title>
        </head>
        <body>
        {% module TestModule() %}
        <br>
        {{ test() }}
        </body>
        </html>

        具体使用

  • 模板的其他命令
    •  def test(self): return 'test'
      
       def upper(self, text):
      if isinstance(text, str):
      return text.upper()
      raise TypeError

      在ulmethod里面定义一个upper方法

    •  <!DOCTYPE html>
      <html lang="en">
      <head>
      <meta charset="UTF-8">
      <title>Title</title>
      </head>
      <body>
      {{ upper('hello') }}
      </body>
      </html>

      使用该方法

    • 当传入的参数比较大的时候,这种方法显得不太美观
       <!DOCTYPE html>
      <html lang="en">
      <head>
      <meta charset="UTF-8">
      <title>Title</title>
      </head>
      <body>
      {% apply upper %}
      asdasdasddddddddd
      {% end %}
      </body>
      </html>

      apply可以扩大后面方法的作用范围,以end结尾

    •  <!DOCTYPE html>
      <html lang="en">
      <head>
      <meta charset="UTF-8">
      <title>Title</title>
      </head>
      <body>
      {{ linkify ('http://www.baidu.com') }}
      {% raw linkify ('http://www.baidu.com') %}
      </body>
      </html>

      linkify后接一个元祖,会自动识别元祖内的url,将其解析为a标签,但需要取消转译

模板继承和UImodul 和 UImethods的更多相关文章

  1. tornado框架基础05-模板继承、UImodul和UImethods

    01 模板继承 父模板​ <html lang="en"> <head>     <meta charset="UTF-8"> ...

  2. Python自动化之模板继承和cookie

    request请求头信息 type(request) //查看类 from django.core.handlers.wsgi import WSGIRequest 结果会以字典的形式存在 reque ...

  3. Django(4)html模板继承、模板导入、分页实现

    1.获取所有请求信息 导入模块:from django.core.handlers.wsgi import WSGIRequest request.environ:包含所有的请求信息,可以打印看一下, ...

  4. tp框架之模板继承

    模板继承是一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层.模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并且其中定义相关的区 ...

  5. Django 中url补充以及模板继承

    Django中的URL补充 默认值 在url写路由关系的时候可以传递默认参数,如下: url(r'^index/', views.index,{"name":"root& ...

  6. Thinkphp3.2中的模板继承

    1:模板继承:   是3.1.2版本添加的一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层.模板继承其实并不难理解,就好比 类的继承一样,模板也可以定义一个基础模板( ...

  7. Django1.9开发博客(6)- 模板继承

    模板继承就是网站的多个页面可以共享同一个页面布局或者是页面的某几个部分的内容.通过这种方式你就需要在每个页面复制粘贴同样的代码了. 如果你想改变页面某个公共部分,你不需要每个页面的去修改,只需要修改一 ...

  8. thinkphp中模板继承

    模板继承是3.1.2版本添加的一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层.模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局), ...

  9. python【第二十一篇】Django模板继承、分页、cookie验证

    1.模板继承 母版master.html {% block title %}{% endblock %}2 {% block table-cont %}{% endblock %} 子板 {% ext ...

随机推荐

  1. 前端BOM和DOM

      前端基础之BOM和DOM   前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的一些 ...

  2. git回滚到任意一个版本

    1.首先查找提交的记录(-3表示显示最近的3条) git log -3 2.强制回滚到制定版本 git reset --hard 制定版本commitId 如:git reset --hard 4ba ...

  3. vue项目 github 上传项目并链接地址

    git init git init: 通过命令git init把这个文件夹变成Git可管理的仓库git status git status:查看当前仓库状态 git add . 这里提示你虽然把项目粘 ...

  4. AspNetCore3.1_Secutiry源码解析_2_Authentication_核心对象

    系列文章目录 AspNetCore3.1_Secutiry源码解析_1_目录 AspNetCore3.1_Secutiry源码解析_2_Authentication_核心项目 AspNetCore3. ...

  5. 5分钟使用NetModular 完成通讯录 App 开发

    原版连接:https://www.cnblogs.com/shanyou/p/12520894.html NetModular(后文简称NM)是 OLDLI 堪称艺术品级的应用开发框架,它基于经典领域 ...

  6. niginx:duplicate MIME type "text/html" in nginx.conf 错误(转载)

    把nginx升级到最新以后,发现用原来的配置启动的时候会提示: duplicate MIME type "text/html" in /usr/local/nginx/conf/n ...

  7. JVM 参数及各部分含义(转)

    转自:https://www.jianshu.com/p/1c6b5c2e95f9 JVM参数分类 JVM参数分为标准参数和非标准参数: 标准参数: "-"开头的参数,如-clie ...

  8. SpringMVC框架——常用注解

    @RequestMapping Spring MVC 通过 @RequestMapping 注解将请求与业务方法进行映射,在方法定义处,在类定义都可以添加该注解. 常用参数: 1.value:指定请求 ...

  9. Cisco 综合配置(一)

    要求: 1.内网所有PC及服务器都能访问外网 2.外网通过公网地址 202.101.100.3 访问内网服务器的Telnet服务 配置: PC.服务器都配置好自己的IP和默认网关:192.168.1. ...

  10. Cisco二层交换机命令

    1.二层交换机基本配置 Switch >Switch >enable   # 进入特权模式 Switch#configure terminal   # 进入全局配置模式 Switch(co ...