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 = ...
随机推荐
- bug20170125
1s定时请求接口,接口不响应(接口挂掉),浏览器崩溃
- git设置ss代理
// 查看当前代理设置 git config --global http.proxy http/https协议 //设置代理(clone https://前缀的repo会走代理) git config ...
- 作为一名IT从业者,你在工作和学习中,遇到哪些问题
版权声明:襄阳雷哥的版权声明 https://blog.csdn.net/FansUnion/article/details/28448975 大家都是IT从业者,遇到的问题多少与类似. 假设能把这些 ...
- 网络基础 TCP/IP
为了理解 HTTP,我们有必要事先了解一下 TCP/IP 协议族.通常使用的网络(包括互联网)是在 TCP/IP 协议族的基础上运作的.而 HTTP 属于它内部的一个子集.接下来,我们仅介绍理解 HT ...
- Python学习系列(一)(基础入门)
Python入门 本系列为Python学习相关笔记整理所得,IT人,多学无害,多多探索,激发学习兴趣,开拓思维,不求高大上,只求懂点皮毛,作为知识储备,不至于落后太远.如果兴趣学习者,推荐一个基础视频 ...
- MQ中间件选型
如果Java项目,数据量不大,用ActiveMQ,相对简单.支持JMS. 如果对性能.可靠性有一定要求,用RabbitMQ. 如果对性能有很高要求,甚至可牺牲一些可靠性,选kakfa. 在当前大数据时 ...
- asterisk channel driver dev ref
入口函数load_module load_config ast_channel_register console_tech ast_cli_register_multiple ...
- 启用Win8/10(中文版/核心版/家庭版)中被阉割的远程桌面服务端
Windows 8/8.1/10 标准版(中文版/核心版/家庭版)中取消了远程桌面服务端,想通过远程连接到自己的电脑就很麻烦了,第三方远程桌面速度又不理想(如TeamViewer).通过以下方法可让系 ...
- 【selenium】HTMLTestRunner测试报告生成
__author__ = 'Administrator' #coding=utf-8 from selenium import webdriver from selenium.webdriver.co ...
- framework4.0 IIS7下urlrewriter设置问题
framework4.0 IIS7下urlrewriter设置问题 http://www.cnblogs.com/litian/articles/alex.html IIS开启伪静态后html静态页面 ...