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 }}转译成
# &lt;a href=&quot;https://www.shiguangkey.com&quot;&gt;时光钥匙&lt;/a&gt;
# 在解析到浏览器就变成 <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-模板,转义,上传静态文件的更多相关文章

  1. 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的路由方案,与原来的方案在使用上差别不 ...

  2. tornado上传大文件以及多文件上传

    tornado上传大文件问题解决方法 tornado默认上传限制为低于100M,但是由于需要上传大文件需求,网上很多说是用nginx,但我懒,同时不想在搞一个服务了. 解决方法: server = H ...

  3. Xcode svn import项目 上传.a文件(静态库)

    在终端使用命令 touch 项目所在文件夹 svn import 项目文件夹 https://服务器地址 -m "iPad import" 这样就把项目上传到服务器上了!但是不能把 ...

  4. tornado+nginx上传视频文件

    [http://arloz.me/tornado/2014/06/27/uploadvideotornado.html] [NGINX REFRER:Nginx upload module] 由于to ...

  5. Django——3 模板路径 模板变量 常用过滤器 静态文件的使用

    Django 模板路径 模板变量 过滤器 静态文件的加载 模板的路径,有两种方法来使用 设置一个总的templates在大项目外面,然后在sittings的TEMPLATES中声明 在每一个APP中创 ...

  6. extjs插件开发上传下载文件简单案例

    前台,extjs,框架,mybatis,spring,springMVC,简单的文件上传下载案例. 必要的jar包,commons-fileupload-1.3.1.jar,commons-io-2. ...

  7. .NET两种常见上传下载文件方法

    1.FTP模式 代码如下: (1)浏览 /// <summary> /// 浏览文件 /// </summary> /// <param name="tbCon ...

  8. SpringMVC文件上传 Excle文件 Poi解析 验证 去重 并批量导入 MYSQL数据库

    SpringMVC文件上传 Excle文件 Poi解析并批量导入 MYSQL数据库  /** * 业务需求说明: * 1 批量导入成员 并且 自主创建账号 * 2 校验数据格式 且 重复导入提示 已被 ...

  9. php实现下载模板与上传模板解析

    <? //下载模板的请求 if(isset($_GET['action']) && $_GET['action'] =='down_group_excel'){ $code = ...

随机推荐

  1. LDA模型应用实践-希拉里邮件主题分类

    #coding=utf8 import numpy as np import pandas as pd import re from gensim import corpora, models, si ...

  2. 【洛谷P1462】【二分+堆优化dij】

    题目描述 在艾泽拉斯,有n个城市.编号为1,2,3,...,n. 城市之间有m条双向的公路,连接着两个城市,从某个城市到另一个城市,会遭到联盟的攻击,进而损失一定的血量. 每次经过一个城市,都会被收取 ...

  3. MHA之Binlog Dump (GTID)僵尸进程清理

      master存活的状态下切换 masterha_master_switch --conf=/etc/masterha/app1.cnf --master_state=alive --new_mas ...

  4. MySQL · 特性分析 · 优化器 MRR & BKA【转】

    MySQL · 特性分析 · 优化器 MRR & BKA 上一篇文章咱们对 ICP 进行了一次全面的分析,本篇文章小编继续为大家分析优化器的另外两个选项: MRR & batched_ ...

  5. FastAdmin 系统配置中添加选项卡

    群里有小伙伴问怎么在系统配置中添加选卡,之前试过. 流程如下 刷新页面,然后就有了.

  6. lamba数据架构以及数据湖

    面试大数据项目,面试过程中发现面试官提到的两个概念没有搞清楚: 1. lamba数据架构:这个概念的提出是由storm的作者提出来的,其实主旨就是想要说明,数据的处理分成三层,一类是批处理程序(bat ...

  7. 【linux】vim/vi常用指令

    0或者"Home”键:光标转移到此段的最前面字节处. $或者"End"键:光标转移到此段的最后面字节处. n<space>:光标向后移动n个字节. n< ...

  8. iotBaidu问题小结

    1.后台程序不能正常运行: d:\>java -jar MqttService.jar Exception in thread "main" java.lang.Securi ...

  9. android开发常用组件【持续更新中。。。】

    UI相关 图片 Android-Universal-Image-Loader:com.nostra13.universalimageloader:异步加载.缓存.显示图片 ImageLoader:co ...

  10. 【EasyUI学习-1】MyEclipse+easyui学习官方Demo

    介绍 easyui的介绍,网上很多,这里就不进行介绍了. easyUI获取 官网: http://www.jeasyui.com/  下载地址:http://www.jeasyui.com/downl ...