tornado样板
python tornado 样版 (包含出错页面)
2018-02-27 13:07:30
1 # -*- coding:utf-8 -*-
2
3 import tornado.web
4 import tornado.httpserver
5 import tornado.options
6 import tornado.ioloop
7
8 from tornado.options import define,options
9
10 define('port', default=8080, help='run port', type=int) # 定义端口
11 define('version', default='0.0.1', help='version 0.0.1', type=str) # 定义版本
12
13
14 class MainHandler(tornado.web.RequestHandler): # 定义路由
15
16 def get(self):
17 self.write('hello world ! <br>')
18 self.write('模版建立完成 <br>')
19
20
21 class NotFoundHandler(tornado.web.RequestHandler): # 若路由未匹配上,则跳转到出错页面
22
23 def get(self, *args, **kwargs): # 这里要发送404 否则会出现 405
24 self.send_error(404)
25
26 def write_error(self, status_code, **kwargs):# 重写错误页面
27 self.render('error.html') #会覆盖前面的 self.render('error.html')
28
29
30 application = tornado.web.Application(
31 handlers = [
32 (r"/",MainHandler),
33 (r"/(.*)", NotFoundHandler),
34 ],
35 template_path = 'error', # 指定路径
36 debug = True # 调试模式 文件修改后 自动重启服务器
37 )
38
39 if __name__ == '__main__':
40 print(options.port)
41 print(options.version)
42 tornado.options.parse_command_line()
43 # app = tornado.web.Application( handlers=[(r'/',MainHandler),] )
44 http_server = tornado.httpserver.HTTPServer(application)
45 http_server.listen(options.port) # 监听端口
46 tornado.ioloop.IOLoop.instance().start() #服务器自动循环 等待访问
目录结构
error.html
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>error</title>
6 <style>
7 *{
8 margin:0;
9 padding: 0;
10 }
11 div{
12 margin: auto;
13 margin-top: 60px;
14 width: 500px;
15 height: 30px;
16 text-align:center;
17 font-size: large;
18 font-weight: bold;
19 }
20 </style>
21 </head>
22 <body>
23
24 <div> 页面丢失啦 检查下路由</div>
25
26 </body>
27 </html>
tornado样板的更多相关文章
- Django,Flask,Tornado三大框架对比,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
Django 与 Tornado 各自的优缺点Django优点: 大和全(重量级框架)自带orm,template,view 需要的功能也可以去找第三方的app注重高效开发全自动化的管理后台(只需要使 ...
- Python(九)Tornado web 框架
一.简介 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过 ...
- 使用tornado,我们可以做什么?
以下介绍都是建立在python2.x的基础上面,tornado使用任意版本皆可. 如果我们需要对外提供一个http server(web api)/websocket server时,我们都可以使用t ...
- ABP(现代ASP.NET样板开发框架)系列之1、ABP总体介绍
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之1.ABP总体介绍 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- ABP(现代ASP.NET样板开发框架)系列之2、ABP入门教程
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之2.ABP入门教程 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- ABP(现代ASP.NET样板开发框架)系列之3、ABP分层架构
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之3.ABP分层架构 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- ABP(现代ASP.NET样板开发框架)系列之4、ABP模块系统
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之4.ABP模块系统 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- ABP(现代ASP.NET样板开发框架)系列之5、ABP启动配置
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之5.ABP启动配置 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- ABP(现代ASP.NET样板开发框架)系列之6、ABP依赖注入
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之6.ABP依赖注入 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
随机推荐
- BZOJ5011 & 洛谷4065 & LOJ2275:[JXOI2017]颜色——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=5011 https://www.luogu.org/problemnew/show/P4065 ht ...
- Linux实验二
一 第一个实验 Linux基础 1 通过娄老师关于分析学霸学渣的前言 明白了真正的学习一门功课应该是思考本质 而不是纯属记忆 2 全部的命令如下 Linux命令格式:command [o ...
- 【线段树】【P3372】模板-线段树
百度百科 Definition&Solution 线段树是一种log级别的树形结构,可以处理区间修改以及区间查询问题.期望情况下,复杂度为O(nlogn). 核心思想见百度百科,线段树即将每个 ...
- Spring中@Resource与@Autowired、@Qualifier的用法与区别(转)
1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上. 2.@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必 ...
- Mobile phones POJ - 1195 二维树状数组求和
Suppose that the fourth generation mobile phone base stations in the Tampere area operate as follows ...
- Win7 安装配置 nexus3.7.1
安装准备: nexus3.7.1 环境准备: maven.jdk 解压nexus目录结构为: E:\nexus-3.7.1-02 配置环境变量: 启动: nexus.exe /run
- UVA 12034 Race
https://vjudge.net/problem/UVA-12034 题意:n个人比赛,有多少种可能的结果 假设i个人中,有j个人是第一名,方案数为C(i,j) 所以ans=Σ C(n,j)* f ...
- 洛谷 2957 [USACO09OCT]谷仓里的回声Barn Echoes
题目描述 The cows enjoy mooing at the barn because their moos echo back, although sometimes not complete ...
- HDU 5696 区间的价值 暴力DFS
Problem Description 我们定义"区间的价值"为一段区间的最大值*最小值. 一个区间左端点在L,右端点在R,那么该区间的长度为(R−L+1). 现在聪明的杰西想要知 ...
- [Luogu 2604] ZJOI2010 网络扩容
[Luogu 2604] ZJOI2010 网络扩容 第一问直接最大流. 第二问,添加一遍带费用的边,边权 INF,超级源点连源点一条容量为 \(k\) 的边来限流,跑费用流. 大约是第一次用 nam ...