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 = ...
随机推荐
- OpenCV Error: Insufficient memory问题解析
前言 项目程序运行两个月之久之后突然挂了,出现OpenCV Error: Insufficient memory的错误,在此分析一下该问题. 问题的表现形式: 程序内存使用情况: 问题: OpenCV ...
- 高并发中nginx较优的配置
一.这里的优化主要是指对nginx的配置优化,一般来说nginx配置文件中对优化比较有作用的主要有以下几项: 1.nginx进程数,建议按照cpu数目来指定,一般跟cpu核数相同或为它的倍数. wor ...
- git操命令&&node操作命令
1:删除远程库中的分支(现在本地删除该分支) git push origin --delete trunk分支 2:初始化一个新的工程 jdf install init xxx 3:编译好代码后,交给 ...
- leetcode:Pascal's Triangle II【Python版】
1.将tri初始化为[1],当rowIndex=0时,return的结果是:1,而题目要求应该是:[1],故将tri初始化为[[1]],返回结果设置为tri[0]即可满足要求: 2.最开始第二层循环是 ...
- flynn 开源paas 平台安装试用
flynn 是一个不错的开源paas 平台,基于git 以及容器技术,开发模型与 heroku 基本一样,同时构建方式就是基于heroku 的buildpacks 安装 官方文档提示说明是ubuntu ...
- nyoj 单调递增最长子序列
单调递增最长子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4 输入 ...
- oracle12c之 控制pdb中sga 与 pga 内存使用
Memory Management using Resource Manager Oracle数据库资源管理器(资源管理器)现在可以在多租户容器数据库(CDB)中管理可插入数据库(PDBs)之间的内存 ...
- JS 响应式布局
1.media 效果为屏幕宽度变化时,背景颜色也变化 <!DOCTYPE html> <html lang="en"> <head> <m ...
- VT-x is not available. (VERR_VMX_NO_VMX) on windows 8
've installed virtualbox on windows 8 x64, then when I open linux guest machine, I got this error me ...
- hadoop零基础入门之DKH安装准备
前几天去参加了一个线下的聚会,参加聚会的基本都是从事互联网工作的.会上有人提到了区块链,从而引发了一场关于大数据方面的探讨.我也是从去年才正式接触大数据,一直在学习hadoop.相信接触过hadoop ...