第二百六十八节,Tornado框架-路由映射之二级域名支持,html模板继承以及导入
Tornado框架-路由映射之二级域名支持,html模板继承以及导入
二级域名路由映射
add_handlers()设置二级域名路由映射
注意:二级域名需要结合服务器ip绑定域名
框架引擎
#!/usr/bin/env python
#coding:utf-8 import tornado.ioloop
import tornado.web #导入tornado模块下的web文件
from controllers import index settings = { #html文件归类配置,设置一个字典
"template_path":"views", #键为template_path固定的,值为要存放HTML的文件夹名称
"static_path":"statics", #键为static_path固定的,值为要存放js和css的文件夹名称
} #路由映射
#一级路由映射如localhost.com
application = tornado.web.Application([ #创建一个变量等于tornado.web下的Application方法
(r"/index/(?P<page>\d*)", index.indexHandler), #正则匹配访问路径,访问录index/后面可以是可以是0个或多个数字
],**settings) #将html文件归类配置字典,写在路由映射的第二个参数里 #二级域名路由映射如buy.localhost.com
application.add_handlers('buy.localhost.com$',[
(r"/index/(?P<page>\d*)", index.buy), #二级域名访问函数
]) if __name__ == "__main__":
#内部socket运行起来
application.listen(8888) #设置端口
tornado.ioloop.IOLoop.instance().start()
逻辑处理
#!/usr/bin/env python
#coding:utf-8 import tornado.ioloop
import tornado.web #导入tornado模块下的web文件
from pymkuai import fenye SHUJU = [
{"user":"lgx","emia":"729088188@qq.com"}
]
for f in range(300):
SHUJU.append({"user": "lgx", "emia": "729088188@qq.com"}) #填充数据到300条 #逻辑处理
class indexHandler(tornado.web.RequestHandler): #定义一个类,继承tornado.web下的RequestHandler类
def get(self,page): #get()方法,接收get方式请求 fen_ye = fenye.fen_ye_lei(page,SHUJU,10,11,5,'/index/') #执行分页对象 if fen_ye.dang_qian_ye > fen_ye.zong_ye_ma: #判断分页对象里的当前页码如果大于总页码
zfchdqy = str(fen_ye.zong_ye_ma) #将总页码转换成字符串
self.redirect("/index/" + zfchdqy) #跳转到总页码
else:
self.render("index.html",dqy=fen_ye.dang_qian_ye,shuju=fen_ye.shu_ju_fan_wei(),yem=fen_ye.xian_shi_ye_ma()) # 显示index.html文件,传递当前页码,传递数据,传递分页 def post(self,page):
user = self.get_argument("user") #接收用户提交的用户名
emia = self.get_argument("emia") #接收用户提交的邮箱
temp = {"user":user,"emia":emia} #将邮箱和用户名组合成字典,
SHUJU.append(temp) #将字典追加到SHUJU全局变量
self.redirect("/index/" + page) #跳转到当前页面 class buy(tornado.web.RequestHandler):
def get(self):
self.render("buy.html")
母板继承
母板继承就是访问的页面继承一个母板,将访问页面的内容引入到母板里指定的地方,组合成一个新页面返回给浏览器
一般母板里都是写的一个网页里不变的地方,也就是通用的地方,被继承页(访问页)都是每个页面不同的地方,也就是将页面不同的地方引入到母板组合成一个新页面返回浏览器
母板里一般都是网页的、头部、底部、头部底部css、头部底部js
被继承页(访问页)里一般都是新内容,新内容的css和js
{% extends '母板路径名称'%}访问页面继承母板
{% block 代码块名称 %}<html代码块>{% end %}在访问页设置一个可引入到母板的html代码块
{% block 代码块名称 %}{% end %}在母板,引入访问页对应的html代码块
框架引擎
#!/usr/bin/env python
#coding:utf-8 import tornado.ioloop
import tornado.web #导入tornado模块下的web文件
from controllers import index settings = { #html文件归类配置,设置一个字典
"template_path":"views", #键为template_path固定的,值为要存放HTML的文件夹名称
"static_path":"statics", #键为static_path固定的,值为要存放js和css的文件夹名称
} #路由映射
#一级路由映射如localhost.com
application = tornado.web.Application([ #创建一个变量等于tornado.web下的Application方法
(r"/index/(?P<page>\d*)", index.indexHandler), #正则匹配访问路径,访问录index/后面可以是可以是0个或多个数字
(r"/nevm/(?P<page>\d*)", index.nevmHandler)
],**settings) #将html文件归类配置字典,写在路由映射的第二个参数里 if __name__ == "__main__":
#内部socket运行起来
application.listen(8888) #设置端口
tornado.ioloop.IOLoop.instance().start()
逻辑处理
#!/usr/bin/env python
#coding:utf-8 import tornado.ioloop
import tornado.web #导入tornado模块下的web文件
from pymkuai import fenye #逻辑处理
class indexHandler(tornado.web.RequestHandler): #定义一个类,继承tornado.web下的RequestHandler类
def get(self,page): #get()方法,接收get方式请求
self.render("index.html") # 显示html文件, class nevmHandler(tornado.web.RequestHandler): #定义一个类,继承tornado.web下的RequestHandler类
def get(self,page): #get()方法,接收get方式请求
self.render("nevm.html") # 显示html文件,
muban.html 母板html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试网站</title>
<link rel="stylesheet" href='{{static_url("muban.css")}}'>
{% block css %}{% end %} <!--接收被继承页面的css连接-->
</head>
<body>
<div id="tou">头部</div> {% block neir %}{% end %} <!--接收被继承页面的内容区块--> <div id="dibu">底部</div>
</body>
</html>
index.html 访问页(被继承页)
{% extends 'muban.html'%} <!--继承母板muban.html--> {% block css %} <!--导入css到继承页面指定地方-->
<link rel="stylesheet" href='{{static_url("index.css")}}'>
{% end %} {% block neir %} <!--导入内容区块到继承页面指定地方-->
<div id="neir">首页内容</div>
{% end %}
nevm.html 访问页(被继承页)
{% extends 'muban.html'%} <!--继承母板muban.html--> {% block css %} <!--导入css到继承页面指定地方-->
<link rel="stylesheet" href='{{static_url("nevm.css")}}'>
{% end %} {% block neir %} <!--导入内容区块到继承页面指定地方-->
<div id="neir">内页内容</div>
{% end %}
index.html 返回浏览器
nevm.html 返回浏览器
html导入
将一个写有html代码块的文件,导入到另一个html文件中显示
一般用于导入小区块
被导入文件也支持模板语言
{% include '被导入区块html文件路径名称' %}写在需要导入区块的html文件里,将一个html文件导入到当前文件显示,
当前html
{% extends 'muban.html'%} <!--继承母板muban.html--> {% block css %} <!--导入css到继承页面指定地方-->
<link rel="stylesheet" href='{{static_url("index.css")}}'>
<link rel="stylesheet" href='{{static_url("qukuai.css")}}'>
{% end %} {% block neir %} <!--导入内容区块到继承页面指定地方-->
<div id="neir">
首页内容
{% include 'qukuai.html' %}
</div>
{% end %}
被导入html
<div id="qukuai">
区块内容
</div>
第二百六十八节,Tornado框架-路由映射之二级域名支持,html模板继承以及导入的更多相关文章
- 第二百六十二节,Tornado框架-cookie
Tornado框架-cookie Cookie 是网站用来在客户端保存识别用户的一种小文件.一般来用库可以保存用户登 录信息.购物数据信息等一系列微小信息. self.set_cookie()方法,创 ...
- 第三百六十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索的自动补全功能
第三百六十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—用Django实现搜索的自动补全功能 elasticsearch(搜索引擎)提供了自动补全接口 官方说明:https://www.e ...
- 第二百五十七节,Tornado框架-路由映射,逻辑处理,文件归类配置
Tornado框架-路由映射,逻辑处理,文件归类配置 Tornado框架 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起 ...
- 第二百六十四节,Tornado框架-基于正则的动态路由映射分页数据获取计算
Tornado框架-基于正则的动态路由映射分页数据获取计算 分页基本显示数据 第一步.设置正则路由映射配置,(r"/index/(?P<page>\d*)", inde ...
- 第二百六十三节,Tornado框架-基于正则的动态路由映射
Tornado框架-基于正则的动态路由映射 1.在路由映射条件里用正则匹配访问路径后缀2.给每一个正则匹配规则(?P<设置名称>)设置一个名称,3.在逻辑处理的get()方法或post() ...
- 第二百六十九节,Tornado框架-Session登录判断
Tornado框架-Session登录判断 Session需要结合cookie来实现 Session的理解 1.用户登录系统时,服务器端获取系统当前时间,进行nd5加密,得到加密后的密串 2.将密串作 ...
- 第二百六十六节,Tornado框架-XSS处理,页码计算,页码显示
Tornado框架-XSS处理,页码计算,页码显示 Tornado框架-XSS攻击过滤 注意:Tornado框架的模板语言,读取数据已经自动处理了XSS攻击,过滤转换了危险字符 如果要使危险字符可以远 ...
- 第二百六十节,Tornado框架-内置模板方法
Tornado框架-内置模板方法 直接在html文件使用,不需要传值 Tornado默认提供的这些功能其实本质上就是 UIMethod 和 UIModule,也就是Tornado框架定义好的html文 ...
- 第二百七十二节,Tornado框架-iframe标签框架伪造ajax
Tornado框架-iframe标签框架伪造ajax html <!DOCTYPE html> <html> <head lang="en"> ...
随机推荐
- 利用html5调用本地摄像头拍照上传图片[转]
利用html5调用本地摄像头拍照上传图片 html5概念啥的就不废话了,不知道的 百度, 谷歌一堆..今天学了学html5中的Canvas结合新增的<video>标签来获取本地摄像头, ...
- Python 遍历dict
遍历dict 由于dict也是一个集合,所以,遍历dict和遍历list类似,都可以通过 for 循环实现. 直接使用for循环可以遍历 dict 的 key: >>> d = { ...
- OpenERP函數字段的應用
在ERP開發過程中經常會使用到某字段的值是由其他字段計算得來,並且有些還需要將計算的結果存入資料庫. 以上功能上OpenERP中是用field.function實現的 其中有種模式 a). 只計算,不 ...
- 在Jquery validation里验证通过后,自定义提交不同的action路径,适合一个窗口既可以作为添加对话框也可以作为编辑对话框
$("#myform").validate({ debug: true, //调试模式取消submit的默认提交功能 ignore: '#Password,#ConfirmPass ...
- js 获取iframe页面元素
js 获取iframe页面元素 CreationTime--2018年8月16日18点00分 Author:Marydon <!-- chart图表 --> <iframe id ...
- IntelliJ IDEA导航特性Top20
在前面的文章里,我介绍了IntelliJ IDEA(以下称IntelliJ)中与代码补全及重构相关的特性.今天我将介绍另外一个利器——IntelliJ的导航(Navigation),只要运用得当,它将 ...
- VS2008 格式化时候乱码 或者 为全为0
前几天一直发现写入文件的数据全是0 ,找了非常长时间发现问题在以下的地方: P:a是一个float数,如31.000000,然后运行以下的格式化语句时,结果str的值全是0. (我知道讲float格式 ...
- 文本检测: CTPN
参考: https://zhuanlan.zhihu.com/p/37363942 https://zhuanlan.zhihu.com/p/34757009 https://zhuanlan.zhi ...
- Linq中GroupBy方法的使用总结(转)
Group在SQL经常使用,通常是对一个字段或者多个字段分组,求其总和,均值等. Linq中的Groupby方法也有这种功能.具体实现看代码: 假设有如下的一个数据集: public class St ...
- Python 爬虫实例(3)—— 爬取今日头条as cp 算法 解密
关于今日头条的 as cp 算法,只是对时间进行了加密,他们的js代码是压缩处理的,正常格式化就可以了 url = "http://www.toutiao.com/api/pc/feed/& ...