tornado框架基础04-模板基础
01 模板
模板演示
配置路径
在 application 中配置模板文件和静态文件的路径:
template_path='templates', static_path='static',
模板
<body> 欢迎{{ username }}登录 </body>
Handler
class TemplatesHandler(tornado.web.RequestHandler):
def get(self):
self.write('templates')
self.render('01in_out.html')
def post(self, *args, **kwargs):
user = self.get_argument('name', 'no')
self.render('02templates.html',
username=user
) #将参数传入模板文件.
在tornado中,模板就是一个html文件,但是模板通过模板语法,由tornado服务渲染之后,可以动态的往页面中填入数据
tornado自带模板语法,不需要再用其他的模板插件
模板概念
必须掌握:模板就是html文件,只是其中加入了模板语法,需要服务器的渲染,才能正常显示数据
02 模板符号
{{expression}}
用 {{ expression }} 中间是任何 python 表达式,或者是一个变量
示例:{{ 1 + 1 }}
{{ time.time() }} #在handler页面中要import time,并且要在handler中传入time参数.
{% directives %}
其他的模板指令
示例
{% if 1 %} this is if {% end %}
{# … #}
在模板中要注释python表达式的运行,需要使用这个模板语法
示例
{# time.time() #}}
{{! {%! {#!
取消执行,如果不想执行内容,需要在页面上打印出模板符号,只需要加上感叹号( ! )即可
示例
{{! 1 + 1}}
{%! if 1 %} this is if {%! end %}
{#! time.time() #}}
在模板里定义一个变量要用set
{% set a = 0 %}
对变量的改变也要用set
{% set a += 1 %}
控制语句
if判断
在模板中可以使用 if 判断
注意:最后需要以 {% end %} 结尾
示例
{% if username != 'no' %}
欢迎{{ username }}登录 {% else %}
请登录
{% end %}
循环语句
for 循环
在 tornado 模板中可以使用 for 循环
注意:最后需要以 {% end %} 结尾
示例
{% for i in urllist %}
{{ i }}
{% end %}
while 循环
在 tornado 模板中可以使用 while 循环
注意:最后需要以 {% end %} 结尾
示例
{% set a = 0 %}
{% while a<5 %}
{{ a }} {% set a += 1 %}
{% end %}
模板语法
{{
此符号中放入任意 python 表达式,或者模板中的变量
{%
此符号中放入模板中的命令,比如 if 、for 和 while 等
需要注意的是,使用 if 等命令是,需要加上 {% end %}
除此之外,异常处理 try 也可以在模板中使用,但是这样做会让模板变得像 python 模块一样,因此并不建议大家这么做
{#
模板中的注释语句,可以让模板中指令不执行
03 模板转义
参数
atga = "百度" #里面是百度的网址,这里显示的”百度“
模板
{{ atga }}
转义
页面并没有解析,只是当作一个字符串,直接在页面上打印出来
tornado默认是自动的转义,传入的数据都会当作字符串,不会被浏览器解析
模板去掉转义
局部去掉转义
{% raw atga %}
raw
raw 可以自模板中去掉转义,让 tornado 在渲染的时候不去转义变量
模板去掉转义
模板去转义/全局取消转义,相当于全部加raw
{% autoescape None %}
autoescape
在模板中添加上面代码之后,当前模板不再转义
escape
{{ escape(atga) }}
在开启模板不转义之后,可以使用 escape 来添加转义
全局去掉转义
在 Application 中添加如下配置:
autoescape=None,
autoescape
去掉整个项目的转义,配置之后,整个项目中的模板不再转义
<!-- -->前端注释的内容不显示但是还是会执行的.
04 静态文件引用
static_path='static',
两种引入方式
路由配置
添加此配置之后,tornado就能自己找到静态文件
static/
自动查找
在 Tornado 模板中,static 是个关键词,能够自动替换成 static_path 后的内容
static_url
添加版本号
使用此方法时,Tornado 会自动地给静态文件添加版本号,第2次请求的时候,如果版本号更改了,浏览器会自动的缓存新的静态文件,
html里面的注释写法:
<!-- abc -->在浏览器不显示但是执行.
tornado框架基础04-模板基础的更多相关文章
- Tornado框架中视图模板Template的使用
上文的程序中有这样一段: class MessageHandler(tornado.web.RequestHandler): def get(self): self.write(''' <htm ...
- SQL从入门到基础 - 04 SQLServer基础2(数据删除、数据检索、数据汇总、数据排序、通配符过滤、空值处理、多值匹配)
一.数据删除 1. 删除表中全部数据:Delete from T_Person. 2. Delete 只是删除数据,表还在,和Drop Table(数据和表全部删除)不同. 3. Delete 也可以 ...
- tornado框架基础10-websocket
websocket 01 长轮询 在网页,我们经常扫码登录,结合之前的学习的知识点,来思考下,前端是如何知道用户在手机上扫码登录了呢? 长轮询:客户端不断的向服务器发送请求 缺点: \1. 开销大 \ ...
- tornado框架基础05-模板继承、UImodul和UImethods
01 模板继承 父模板 <html lang="en"> <head> <meta charset="UTF-8"> ...
- Python开发【第二十一篇】:Web框架之Django【基础】
Python开发[第二十一篇]:Web框架之Django[基础] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5237704.html Python之 ...
- tornado框架&三层架构&MVC&MTV&模板语言&cookie&session
web框架的本质其实就是socket服务端再加上业务逻辑处理, 比如像是Tornado这样的框架. 有一些框架则只包含业务逻辑处理, 例如Django, bottle, flask这些框架, 它们的使 ...
- Vue基础项目模板
https://github.com/wanglong/vue-element-admin.git 优化 Vue CLI 3 构建的前端项目模板(1)- 基础项目模板介绍 一站式开源运维平台,分享给大 ...
- Django框架04 /模板相关、别名/反向解析/路由分发
Django框架04 /模板相关.别名/反向解析/路由分发 目录 Django框架04 /模板相关.别名/反向解析/路由分发 1. 语法 2. 变量/万能的点 3 . 过滤器 4. 标签Tags 5. ...
- javaSE基础04
javaSE基础04 一.三木运算符 <表达式1> ? <表达式2> : <表达式3> "?"运算符的含义是: 先求表达式1的值, 如果为真, ...
- javascript基础04
javascript基础04 1.循环语句 1.While 语句: while (exp) { //statements; } var i = 1; while(i < 3){ alert(i) ...
随机推荐
- c++计算程序时间
#include<iostream.h> #include<time.h> void main() { clock_t start,finish; double totalti ...
- Centos6.8 搭建 Mysql 主从复制
实例环境: MySQL-Master:Centos-6.8:192.168.153.130 MySQL-Slave:Centos-6.8:192.168.153.131 1.两台服务器安装mysql ...
- linux常用的shell命令
1.shell介绍 shell(外壳)是linux系统的最外层,简单的说,它就是用户和操作系统之间的一个命令解释器. 2.shell命名的使用 ls :查看当前目录的信息,list . ...
- 数位dp知识
转自http://blog.csdn.net/zhaoxinfan/article/details/8707605 下面先给出数位DP的背景: •在给定区间[A,B]内,找满足要求的数. •要求一般和 ...
- 使用laravel的Command实现搜索引擎索引和模板的建立
创建command,初始化es 创建成功后,可通过php artisan 查看到 php artisan make:command ESInit 安装guzzle composer require g ...
- ldap_modify: No such object (32) matched DN: cn=config
centos 6.9 部署 kerbors ldap 报错 [root@hadoop data]# ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ld ...
- 小知识~VS2012的xamarin加载失败解决
1 由于Nuget版本过低导致的,工具->扩展和更新->在线更新->对nuget程序包程序器进行升级即可 错误代码: 错误 4 错误: 缺少来自类“NuGet.Visua ...
- tomcat https协议
一.tomcat证书 JDK自带的keytool工具来生成证书 1. 在jdk的安装目录\bin\keytool.exe下打开keytool.exe 2. 在命令行中输入以下命令: keytool - ...
- 看云&gitbook 写帮助文档 | 专注于文档在线创作、协作和托管
看云 写帮助文档 | 专注于文档在线创作.协作和托管 https://www.kancloud.cn/manual/thinkphp/1678 https://www.gitbook.com/
- 模板引擎freemarker的使用(一)
配置 了解和学习一下freemarker在项目中的配置与使用,顺便记录下来,知识源于分享,进步源于交流... 我是在ssm中配置的. maven 中需要引入的依赖 <!-- freemarker ...