第二百六十八节,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"> ...
随机推荐
- Oracle的操作系统身份认证
Oracle的操作系统身份认证 oraclelogin数据库远程登录authenticationos sqlnet.authentication_services=(NTS),在$ORACLE_HOM ...
- vue - 添加sass(less)处理
1. 添加less.sass处理 1.1如果是sass,首先在当前目录安装处理插件(sass): npm i -D node-sass sass-loader 1.2如果是less,首先在当前目录安装 ...
- taro 环境判断
Taro.ENV_TYPE ENV_TYPE.WEAPP 微信小程序环境 ENV_TYPE.SWAN 百度小程序环境 ENV_TYPE.ALIPAY 支付宝小程序环境 ENV_TYPE.TT 字节跳动 ...
- java反射--动态加载
Class.forName("类的全称") 1)不仅表示类的类类型,还表示了动态加载类 2)请区分编译,运行 3)编译时刻加载类是静态加载类,运行时刻加载类是动态加载类 比如下面: ...
- CallableStatement简单使用
直接上存储过程.函数 --运行不带參数但带返回值的存储过程 CREATE OR REPLACE PROCEDURE proc_getUserCount(v_totalCount OUT NUMBER) ...
- 【laravel54】创建控制器、模型
1.创建控制器(可以带上下一级目录)=>(需要带Controller后缀) > php artisan make:controller self/StudentController; 2. ...
- Bulk Load-HBase数据导入最佳实践
一.概述 HBase本身提供了非常多种数据导入的方式,通常有两种经常使用方式: 1.使用HBase提供的TableOutputFormat,原理是通过一个Mapreduce作业将数据导入HBase 2 ...
- NTP Reply Flood Attack (NTP反射型DDos攻击)
简介 NTP Reply Flood Attack (NTP射型Ddos攻击)以下简称NTP_Flood是一种利用网络中NTP服务器的脆弱性(无认证,不等价数据交换,UDP协议),来进行DDos行为的 ...
- linux下apache服务器的安装、启动、查看
一.apache的启动 apahce启动命令:/你的安装目录/apachectl start apaceh启动 apache停止命令/你的安装目录/apachectl stop 停止 apache ...
- i2c 协议解析
1.基本概念 主机 初始化发送,产生时钟信号和终止发送的器件 从机 被主机寻址的器件 发送器 发送数据到总线的器件 接收器 从总 ...