模板继承和UImethod、UImodules

模板继承与引用

主文件05-extendes.py文件:

class MainHandler(RequestHandler):
    def get(self):
        name = self.get_argument(‘name‘,‘‘)
        self.render(‘04-extend.html‘,username = name)

application = tornado.web.Application(
    handlers=[
        (r‘/‘,MainHandler),
    ],
    debug=True,
    template_path = ‘templates‘,
    static_path=‘static‘,
    autoescape = None, #全局取消转义
)

render返回的文件04-extend.html

extends

{% extend *filename* %}继承模板,在子模板中会把父模板的所有内容都继承到子模板中,减少大量重复代码

block

{% block *name* %}...{% end %}  被词语句包裹的代码块在子模板中可以被重写,覆盖父模板中的

{% extends ./03-base.html %}
{% block title %} Extend {% end %}
{% block body %}
{% include ./05-include.html %}
 <h1> hello world!</h1>
{% end %}
{% block image %}
<img src="{{ static_url(‘images/01.jpg‘) }}" alt="">

{% end %}

继承自基类文件 03-base.html

<head>
    <meta charset="UTF-8">
    <title> {% block title %}Tornado{% end %}</title>
</head>
<body>
    {% block body %}
    <h1>taka</h1>
    <h1>gulu</h1>
        {% end %}
    <h1>litao</h1>
    {% block image %} {% end %}

</body>

include 引用自05-include.html

{% include *filename*%} include 可以导入一些其他的模板文件,一般使用 include 的时候,模板文件中不使用 block 块

{% if username !=‘‘ %}
    欢迎 {{ username }} 登录
<img src="static/images/01.jpg" width="200px" alt="">
<img src="{{ static_url(‘images/02.webp‘) }}" width="200px" alt="">
{% else %}
    亲,请登录
{% end %}

函数跟类导入

1. 渲染时导入

import tornado.web
import tornado.ioloop
import tornado.httpserver
import tornado.options
from tornado.web import RequestHandler
from tornado.options import define,options
import time

define(‘port‘,default=8080,help=‘run server‘,type=int)

class HeiHei:
    def sum(self,a,b):
        return a+b

class MainHandler(RequestHandler):
    def haha(self):
        return ‘this is haha function‘
    def get(self):
        name = self.get_argument(‘name‘,‘‘)
        self.render(‘04-extend.html‘,
                    username = name,
                    haha = self.haha,   #函数导入
                    heihei = HeiHei()   #类的实例导入
                    )

application = tornado.web.Application(
    handlers=[
        (r‘/‘,MainHandler),
    ],
    debug=True,
    template_path = ‘templates‘,
    static_path=‘static‘,
)

2.模板中直接导入

2.1 导入内置模块

2.2 导入自定义模块

注意:python解释器查找 mod_file 时是根据 py 文件的路径来查找的,不是根据模板的路径来查找

{% block body %}
{% include ./05-include.html %}
 <h1> hello world!</h1>
{{ haha() }}  #渲染时导入
<br>
{{ heihei }}   #渲染时导入
<br>
{{ heihei.sum(2,3) }}  #渲染时导入
<br>
{% import time %}   #模板中直接导入
{{ time.ctime() }}
<br>
{% from util.mod_file import add_num %}  #导入自定义模块
{{ add_num(1,11) }}
{% end %}

3.ui_methods跟ui_modules

原文地址:https://www.cnblogs.com/taoge188/p/10630967.html

时间: 2024-10-12 06:41:51

模板继承和UImethod、UImodules的相关文章

tp框架视图层view——模板继承

在做网站的时候,每个网站都有头部和尾部,也就是菜单栏和页脚,网站的各个子网页的头部和尾部基本就是一样的,所以tp框架提供了一种模板继承的方法: 1.首先在View的Main文件夹下建立一个base.html页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Django模板继承

base.html <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>{% block title %}{% endblock %}</title></head> <body><h1>模板继承</h1>{% block content %}{% endbloc

ThinkPHP模板继承和修改title

先说下模板继承: 假定:在View文件夹中 -> Public  公共模块 ->base/header/top/footer 4个html文件 这下面base文件使用include引入其他3个文件,其中title用block标签,给个name属性,在不同的模板中可以实用block来重新定义title值, block 标签,属性是main的可以,在不同的模板的写不同的内容 <!DOCTYPE html> <html lang="en"> <hea

django之模板继承

1.源html文件:命名为3.html文件 <!DOCTYPE html><html><head><title>模板</title></head><body><h1>模板3</h1> {% block content %} <p>hello world</p>{% endblock %} </body></html> 2.继承文件命名为:4.html,

《Flask web开发》笔记2:模板---继承、bootstrap

前言:今天重新梳理了一下前端方面的知识,发现学习东西还是要用,不然忘得快,废话不多说,开始!! 一.模板继承 1.概念:   书上说,模板继承,类似Python上的继承: 其实个人觉得和所有继承都一样. 2.应用场景:当我们写一系列类似的jinja模板的时候发现,我们总是在重复做些无用的操作,{%%}这东西敲得也蛮累的,这时候就需要引入模板继承: 3.例子: 步骤1. 先建立一个模板,作为 '基类': jilei.html: <html> <head> {% block head

tp框架---View视图层---模板继承(举例说明)

当我们做动态页面时,我们会发现一个网站的头部和尾部是相同的,那么我们如何用tp框架来做模板呢 ? 先看一下注意事项: (1)每个区块由<block></block>标签组成 (2)子模板中使用extend标签继承模板 (3)注释语法:{/* 注释内容 */ } 或 {// 注释内容 }  一.看一下基本的模板继承 (1)先做出模板页面  Ceshi/View/Main/base.html <!DOCTYPE html> <html> <head>

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

模板继承就是网站的多个页面可以共享同一个页面布局或者是页面的某几个部分的内容.通过这种方式你就需要在每个页面复制粘贴同样的代码了. 如果你想改变页面某个公共部分,你不需要每个页面的去修改,只需要修改一个模板就行了,这样最大化复用,减少了冗余,也减少了出错的几率,而且你敲的代码也少了. 创建一个base模板 一个base模板就是你全站所有页面都会继承的最基本的网站框架模板.我们在blog/templates/blog/中创建一个base.html模板: blog └───templates └──

thinkPHP框架 简单的删除和修改数据的做法 和 模板继承的意思大概做法

BiaodanController.class.php控制器页面 <?php namespace Admin\Controller; use think\Controller; class BiaodanController extends Controller{ public function zhuyemian(){ $n = D("nation"); $attr = $n->select(); $this->assign("n",$attr)

thinkphp中模板继承

模板继承是3.1.2版本添加的一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层.模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并且其中定义相关的区块(block),然后继承(extend)该基础模板的子模板中就可以对基础模板中定义的区块进行重载.因此,模板继承的优势其实是设计基础模板中的区块(block)和子模板中替换这些区块.每个区块由<block></block>标签组成,并且不支持block标签的嵌套.