潭州课堂25班:Ph201805201 tornado 项目 第一课 项目介绍和创建 (课堂笔记)

tornado 相关说明

,潭州课堂25班:Ph201805201 tornado 项目 第一课  项目介绍和创建 (课堂笔记)

查找 python3 的路径:

binbin@abc:~$ which python3
/usr/bin/python3

潭州课堂25班:Ph201805201 tornado 项目 第一课  项目介绍和创建 (课堂笔记)

创建虚拟环境 :

潭州课堂25班:Ph201805201 tornado 项目 第一课  项目介绍和创建 (课堂笔记)

创建工程;

用 pycharm 连接:找到这个解释器

潭州课堂25班:Ph201805201 tornado 项目 第一课  项目介绍和创建 (课堂笔记)

潭州课堂25班:Ph201805201 tornado 项目 第一课  项目介绍和创建 (课堂笔记)

设置一下服务顺文件存放目录:

潭州课堂25班:Ph201805201 tornado 项目 第一课  项目介绍和创建 (课堂笔记)

潭州课堂25班:Ph201805201 tornado 项目 第一课  项目介绍和创建 (课堂笔记)

潭州课堂25班:Ph201805201 tornado 项目 第一课  项目介绍和创建 (课堂笔记)

运行 hello world

# -*- coding: utf-8 -*-
# 斌彬电脑
# @Time : 2019/2/19 0019 下午 1:22 import tornado.ioloop
import tornado.web class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write('Hello,world') def make_app():
return tornado.web.Application({
(r'/', MainHandler),
}) if __name__ == '__main__':
app = make_app()
app.listen(8001)
tornado.ioloop.IOLoop.current().start()

  潭州课堂25班:Ph201805201 tornado 项目 第一课  项目介绍和创建 (课堂笔记)

保存,自动重启

# -*- coding: utf-8 -*-
# 斌彬电脑
# @Time : 2019/2/19 0019 下午 1:22 import tornado.ioloop
import tornado.web
import tornado.options
from tornado.options import define,options define('port', default='8001', help='Linstening port', type=int) class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write('Hello,world') # 重写 Application
class Application(tornado.web.Application):
def __init__(self):
handlers = [
(r'/', MainHandler),
]
settings = dict(
debug = True
)
     # 继承父类
super().__init__(handlers, **settings) application = Application() if __name__ == '__main__':
tornado.options.parse_command_line() # 处理端口
application.listen(options.port)
print(options.port)
tornado.ioloop.IOLoop.current().start()

  

创建三个页面,放在 模板文件下

在模板下创建 base 模板

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}Tonato title{% end %} </title>
</head>
<body>
{% block content %}Body of base{% end %}
</body>
</html>

模板文件下创建三个 html 文件,继承 base.html

潭州课堂25班:Ph201805201 tornado 项目 第一课  项目介绍和创建 (课堂笔记)

{% extends 'base.html' %}
{% block title %}PostHandler{% end %} {% block content %}
<h3>单个图片详情页面,第{{ post_id }}页</h3>
{% end %}
{% extends 'base.html' %}
{% block title %}ExploreHandler{% end %} {% block content %}
<h3>发现或最近上传的图片页面</h3>
{% end %}
{% extends 'base.html' %}
{% block title %}index{% end %} {% block content %}
<h3>这是首页</h3>
{% end %}

app.py 文件

# -*- coding: utf-8 -*-
# 斌彬电脑
# @Time : 2019/2/19 0019 下午 1:22 import tornado.ioloop
import tornado.web
import tornado.options
from tornado.options import define,options define('port', default='8001', help='Linstening port', type=int) # 第一个页面
class indexHandler(tornado.web.RequestHandler):
'''
首页,所关注的用户图片流
'''
def get(self):
self.render('index.html') # 第二个页面
class ExploreHandler(tornado.web.RequestHandler):
'''
发现或最近上传的图片页面
'''
def get(self):
self.render('explore.html') # 第三个页面
class PostHandler(tornado.web.RequestHandler):
'''
单个图片详情页面
'''
def get(self, post_id):
# 用正则匹配到的 post _id 传到模板里
self.render('post_2.html', post_id=post_id) # 重写 Application
class Application(tornado.web.Application):
def __init__(self):
handlers = [
(r'/', indexHandler),
(r'/explore', ExploreHandler),
# 正则匹配用户输入,0-9 的任意数字,一个或多个
(r'/post/(?P<post_id>[0-9]+)', PostHandler),
]
# 配置
settings = dict(
debug = True,
template_path = 'templates', # 模板文件
)
super().__init__(handlers, **settings) application = Application() if __name__ == '__main__':
tornado.options.parse_command_line() # 处理端口
application.listen(options.port)
print(options.port)
tornado.ioloop.IOLoop.current().start()

  

上一篇:ios如何判断键盘是否已经显示


下一篇:快速入门MySQL教程【转自:http://xpleaf.blog.51cto.com/9315560/1712821】