tornado 05 模块继承

一、模板继承

#问题:在浏览网页的时候,很多页面上很多部分其实是重复的,那这些部分在每个页面都去写一次吗?
#不是,这只不过是通过继承实现的
#模板继承

#在字模板中写上 {% extends ./lesson05_base.html %} 就可以继承父模板的所有内容了 
#子模板内容修改 

#在父模板中 写好块 {%  block title1 %} Tornado {% end %} , 哪个部分需要修改就在block后面,然后在子模板中直接用相同的块并且在块内部修改内容即可,body、JS 同理,block后面的名字可以任意取,最好见名知意
#如果想要添加子模块

{% block body %}
许铖铖不帅
{% include ./lesson05_include.html %} #通过include导入html即可
{% end %}

二、函数和类的导入

#函数的导入只需要在 render里面将函数赋值给变量,然后在模板里面调用即可

#类导入同理
class MainHandler(tornado.web.RequestHandler):
def get(self, *args, **kwargs):
name = self.get_body_argument('name','no')
urllist = [
('http://www.baidu.com','去百度'),
('http://www.shiguangkey.com','去时光'),
('http://www.zhihu.com','去知乎')
]
atga = """<a href="https://www.baidu.com" target="_blank"> _____走 去百度_____</a>"""
self.render('lesson05_extend.html',
username = name ,
time = time,
urllist = urllist,
atga = atga,
haha = haha ,#导入函数
cal = Calculation #导入类
)
#这种方法不利于前段端分离

  还有一种方法

{% import time %}
{{ time.time() }} #也可以直接用import 导入类
{% from util.mod_file import add %}
#从util文件夹中的mod_file.py文件中导入函数add

三、UI_modules 和 UI_methods

#如果函数或类需要在很多个模板中被导入,那该如何做
#在util文件夹里面创建两个py文件 ui_methods.py和ui_modules.py(这两文件名都是随便改的)
#在extend_05.py文件里面导入这两个文件
#在render(渲染)里面讲这两个文件名赋值
#可以再模板里面直接用着py文件里面定义的函数、类 #函数的运用是
{{ 调用函数 }}
{% module 调用类 %} #ui_methods.py文件里面的定义函数必须加self

  例子

class Advertisement(UIModule):
def render(self, *args, **kwargs):
return self.render_string('lesson05_ad.html') def css_files(self):
return '/static/css/King_Chance_Layer7.css' def javascript_files(self):
return [
'/static/js/jquery_1_7.js',
'/static/js/King_Chance_Layer.js',
'/static/js/King_layer_test.js'
]

四、模板其他命令

  apply

#使用apply语句,使用函数的作用范围到最近的{% end %}位置
{% apply upper %}
xuchengcheng <br>
gaoqi
{% end %}

  linkify

#linkify 生成一个链接,但是要注意模板转义
{{   linkify('百度: https:www.baidu.com')   }}
<br>
{% raw linkify('百度: https:www.baidu.com') %} #给括号里面的部分加个a标签

tornado 05 模块继承的更多相关文章

  1. tornado.gen 模块解析

    转自:http://strawhatfy.github.io/2015/07/22/Tornado.gen/ 引言 注:正文中引用的 Tornado 代码除特别说明外,都默认引用自 Tornado 4 ...

  2. 第四章 Odoo 12 开发之模块继承

    Odoo 的一个强大功能是无需直接修改底层对象就可以添加功能.这是通过其继承机制来实现的,采取在已有对象之上修改层来完成.这种修改可以在不同层上进行-模型层.视图层和业务逻辑层.我们创建新的模块来做出 ...

  3. 小猪cms模块继承

    TextAction  继承 UserAction 继承 BaseAction 继承 Action TextAction 路径 PigCms\Lib\Action\User UserAction 路径 ...

  4. Python Revisited Day 05(模块)

    目录 5.1 模块与包 5.1.1 包 5.2 Python 标准库概览 5.2.1 字符串处理 io.StringIO 类 5.2.3 命令行设计 5.2.4 数学与数字 5.2.5 时间与日期 5 ...

  5. 「JavaSE 重新出发」05.01 继承

    继承 一个对象变量可以指示多种实际类型的现象被称为多态(polymorphism). 在运行时能够自动地选择调用哪个方法的现象称为动态绑定(dynamic binding). 如果是private方法 ...

  6. Django2.2 Templates 页面渲染 数据列表跳转 以及简单的页面模块继承

    声明:本博客用的为pycharm Django2.2,基于此内容,会简单讲解 数据库传参形式的增删查改(完整小项目) 路由的 位置参数.关键字参数.以及html中反向解析路由 request的表单传递 ...

  7. 05 多继承、object类

    多继承 Python中一个类可以继承多个父类,并且获得全部父类的属性和方法. class A: def demo(self): print("demo") class B: def ...

  8. 【Python全栈笔记】05 [模块二] 19 Oct 文件的操作

    文件操作 一般步骤1. 文件打开 2. 文件操作 3. 文件关闭 1. 打开文件 使用open(文件名(绝对路径), 打开模式, 编码) 文件打开的模式有: r:  只读模式(默认) w: 只写模式 ...

  9. 【转】Maven实战(九)---模块聚合和继承

    原博文出自于:http://blog.csdn.net/liutengteng130/article/details/47001831   感谢! 类之间有聚合和继承关系,Maven也具备这样的设计原 ...

随机推荐

  1. 面试题:HashMap和ConcurrentHashMap的区别,HashMap的底层源码。

    Hashmap本质是数组加链表.根据key取得hash值,然后计算出数组下标,如果多个key对应到同一个下标,就用链表串起来,新插入的在前面. ConcurrentHashMap:在hashMap的基 ...

  2. Win10 DHCP和Static IP 切换

    创建两个.bat文件,分别命名为static.bat和dhcp.bat static.bat文件写入 netsh interface ip set address "Wi-Fi" ...

  3. boost 时间与日期处理

    博客转载自: 类 特点 缺点 说明 timer 计时基类 不适合大跨度时间 适用大部分的普通计时 progress_timer 继承自timer 可以自动写入流中 只精确到0.01s 如果需要更精确, ...

  4. Luogu 3261 [JLOI2015]城池攻占

    BZOJ 4003 需要实现一个可并堆. 每个点维护一个小根堆,然后一开始把所有骑士加入到它所在的点的小根堆当中,实际上空间是$O(m)$的,然后我们从上到下不断合并这个小根堆,合并完之后如果遇到堆顶 ...

  5. 详解servlet的url-pattern匹配规则.RP

    首先需要明确几容易混淆的规则: servlet容器中的匹配规则既不是简单的通配,也不是正则表达式,而是特定的规则.所以不要用通配符或者正则表达式的匹配规则来看待servlet的url-pattern. ...

  6. CORS同源策略

    同源策略以及跨域资源共享在大部分情况下针对的是Ajax请求.同源策略主要限制了通过XMLHttpRequest实现的Ajax请求,如果请求的是一个“异源”地址,浏览器将不允许读取返回的内容. 支持同源 ...

  7. (转)通过Javascript得到URL中的参数(query string)

    原文地址:http://www.cnblogs.com/season-huang/p/3322561.html 我们知道,"GET"请求中,通常把参数放在URL后面,比如这样htt ...

  8. HackThree

    创建自定义ViewGroup ​一,概要:     使用自定义View 和ViewGroup组织应用程序布局是一个好方法,定制组件的同时允许开发者提供自定义行为和功能,以后,开发者 在需要创建复杂布局 ...

  9. [bash] 显示配色

    #/bin/bash for STYLE in 0 1 2 3 4 5 6 7; do for FG in 30 31 32 33 34 35 36 37; do for BG in 40 41 42 ...

  10. 华硕X550VC安装ubuntu后wifi无法连接问题

    在网上找了很多资料比如重新编译内核,想办法连上有线网络然后更新驱动,下载离线驱动安装包…… 等等方法 其中有些方法实际测试的时候失败了,文章是几年前的,可能缺少某些依赖.上个网都这么麻烦实在让人疲惫. ...