tornado-模板,转义,上传静态文件
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.render("ces.html") def post(self, *args, **kwargs):
user = self.get_argument("name")
urllist = [
("https://www.shiguangkey.com","时光"),
("https://www.baidu.com","百度")
]
atga = '<a href="https://www.shiguangkey.com">时光钥匙</a>'
self.render("4.1-ces.html",
username =user,
urllist = urllist,
atga = atga,
) application = tornado.web.Application(
handlers=[ # 列表按顺序匹配
(r"/", MainHandler),
],
template_path='templates', # 表明页面html的路径
static_path='static',
debug=True, # 上传代码后服务器自动重启
autoescape=None,
)
模板代码
<!DOCTYPE html>
{#% autoescape None %#}
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
* {
margin: 0;
padding: 0;
}
</style>
</head>
<body>
欢迎 {{username}}登录
<br> {% if username!='no' %}
欢迎 {{username}}登录
<img src="static/images/1.png" alt="" style="width: 200px;height:200px">
<img src="{{static_url('images/2.jpg')}}" alt="" style="width: 200px;height:200px">
{% else %}
what is your name?
{% end %}
<br>
{% for i in urllist %}
<a href="{{i[0]}}" target="_blank">{{i[1]}}</a>
{% end%}
<br>
{% set a = 0 %}{% while a<5 %} {{a}}a{% set a += 1 %}{% end %}
<br>
{{ escape(atga) }}
<br>
{% raw atga %}
{{ atga }} </body>
</html>
知识点:
模版 tornado自带模板
# html文件 通过tornado服务渲染,可以往动态的网页传入数据 # {{ python表达式,变量 }}
# {% if a=0%} haha {%end %}
# {% for i in urllist %}a href="{{i[0]}}" target="_blank">{{i[1]}}</a>{% end %}
# {% set a = 0 %}{% while a<5 %} haha{% set a += 1 %}{% end %}
# {# 注释模板 #}
# {{!a=1}} 模板加上!直接将代码转义出来 # {% apply upper %} hello world {% end %} def upper(a): return a.upper() 将所有的字符串都在upper执行一边
# {% raw linkify('百度链接:https://www.baidu.com') %} 将内容变成a链接
取消转义:
# tornado给模板传入字符串,都会转译成html编码
# 变量atga = <a href="https://www.shiguangkey.com">时光钥匙</a>
# 超链接标签传给模板{{ atga }}转译成
# <a href="https://www.shiguangkey.com">时光钥匙</a>
# 在解析到浏览器就变成 <a href="https://www.shiguangkey.com">时光钥匙</a>
# 不能成为链接
# 取消转移
# 模板内 不影响其他模板
# {% atga %} --模板局部取消转义
# <!DOCTYPE html>{% autoescape None %} --全模块
# 防止被取消转移 escape(atga)
# 全局(整个项目,所有模块都不转义)
# application autoescape=None,
引用静态文件:
# 传入图片 如果显示失败 检查是否上传到虚拟环境,和是否在application中表明路径路径 static_path='static'
# <img src="static/images/1.png" alt="">
# *** 或者用函数 static_url 该方法更强大
# <img src="{{static_url('images/2.jpg')}}"> 该函数自动补全路径
tornado-模板,转义,上传静态文件的更多相关文章
- ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 try.dot.net 的正确使用姿势 .Net NPOI 根据excel模板导出excel、直接生成excel .Net NPOI 上传excel文件、提交后台获取excel里的数据
ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 ASP.NET Core 从2.2版本开始,采用了一个新的名为Endpoint的路由方案,与原来的方案在使用上差别不 ...
- tornado上传大文件以及多文件上传
tornado上传大文件问题解决方法 tornado默认上传限制为低于100M,但是由于需要上传大文件需求,网上很多说是用nginx,但我懒,同时不想在搞一个服务了. 解决方法: server = H ...
- Xcode svn import项目 上传.a文件(静态库)
在终端使用命令 touch 项目所在文件夹 svn import 项目文件夹 https://服务器地址 -m "iPad import" 这样就把项目上传到服务器上了!但是不能把 ...
- tornado+nginx上传视频文件
[http://arloz.me/tornado/2014/06/27/uploadvideotornado.html] [NGINX REFRER:Nginx upload module] 由于to ...
- Django——3 模板路径 模板变量 常用过滤器 静态文件的使用
Django 模板路径 模板变量 过滤器 静态文件的加载 模板的路径,有两种方法来使用 设置一个总的templates在大项目外面,然后在sittings的TEMPLATES中声明 在每一个APP中创 ...
- extjs插件开发上传下载文件简单案例
前台,extjs,框架,mybatis,spring,springMVC,简单的文件上传下载案例. 必要的jar包,commons-fileupload-1.3.1.jar,commons-io-2. ...
- .NET两种常见上传下载文件方法
1.FTP模式 代码如下: (1)浏览 /// <summary> /// 浏览文件 /// </summary> /// <param name="tbCon ...
- SpringMVC文件上传 Excle文件 Poi解析 验证 去重 并批量导入 MYSQL数据库
SpringMVC文件上传 Excle文件 Poi解析并批量导入 MYSQL数据库 /** * 业务需求说明: * 1 批量导入成员 并且 自主创建账号 * 2 校验数据格式 且 重复导入提示 已被 ...
- php实现下载模板与上传模板解析
<? //下载模板的请求 if(isset($_GET['action']) && $_GET['action'] =='down_group_excel'){ $code = ...
随机推荐
- TJU Problem 1090 City hall
注:对于每一横行的数据读取,一定小心不要用int型,而应该是char型或string型. 原题: 1090. City hall Time Limit: 1.0 Seconds Memory ...
- stm32 定时器TIM时钟步骤
1)TIM3 时钟使能 . RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIMx, ENABLE); //时钟使能 2) 初始化定时器参数,设置自动重装值, 分频系数, ...
- 20155229 2016-2017-2 《Java程序设计》第六周学习总结
20155229 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 第十章 Java中,输入串流代表对象为java.io.InputStream,输出串流代表对 ...
- HDU 1263:水果(map)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1263 #include <stdio.h> #include <string.h&g ...
- Nolia 给CC添加过滤器
思路: 1.使用jqurey-tagput ,做得不好看,领导不满意 2.使用bootstrap select2这个控件, 思路: 1.添加css和js的文件 2.添加标签的时候,根据id拼接标签,a ...
- matplotlib-------标记特殊点
import matplotlib.pyplot as plt import numpy as np def demo_test(): a=np.array([0.15,0.16,0.14,0.17, ...
- python 获取中文文件名的输出
#coding:utf8 if __name__ == '__main__': srcfile = u"D:/测试路径/测试文件.txt" f = open(srcfile.enc ...
- solr学习一(一大堆的学习资料)
这篇博客含有海量资料,学习solr必备字典 大概看完solr就基本上手了. solr原味资料:http://wiki.apache.org/solr/FrontPage ( http://wi ...
- apache spark kubernets 部署试用
spark 是一个不错的平台,支持rdd 分析stream 机器学习... 以下为使用kubernetes 部署的说明,以及注意的地方 具体的容器镜像使用别人已经构建好的 deploy yaml 文件 ...
- 转详解Zoosk千万用户实时通信背后的开源技术
导语:本文由Zoosk(一个具有5000万会员的浪漫的社交约会网站)工程副总裁Peter Offringa所写,讲述了Zoosk的实时通信技术. 当我们的会员从Zoosk获得的最有价值的消息时,他们可 ...