tornado 相关说明

,

查找 python3 的路径:

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

创建虚拟环境 :

创建工程;

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

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

运行 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()

  

保存,自动重启

# -*- 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

{% 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()

  

潭州课堂25班:Ph201805201 tornado 项目 第一课 项目介绍和创建 (课堂笔记)的更多相关文章

  1. 潭州课堂25班:Ph201805201 tornado 项目 第五课 增加用户系统-用户中心(课堂笔记)

    tornado 相关说明 在 users 表中创建记录,做测试 在项目根目录下创建 test.py # -*- coding: utf-8 -*- # 斌彬电脑 # @Time : 2019/2/27 ...

  2. 潭州课堂25班:Ph201805201 django 项目 第三课 码云注册,django项目 (课堂笔记)

    d码云注册,登录, 创建项目: 生成秘钥 想看秘钥: 添加公钥 复制 ssh 连接 通过  git clone <ssh> 连接 在服务器上创建 python3 虚拟环境, 创建项目  p ...

  3. 潭州课堂25班:Ph201805201 WEB 之 页面编写 第四课 登录注册 (课堂笔记)

    index.html 首页 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  4. 潭州课堂25班:Ph201805201 WEB 之 页面编写 第三课 (课堂笔记)

    index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  5. 潭州课堂25班:Ph201805201 WEB 之 页面编写 第二课 (课堂笔记)

    index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  6. 潭州课堂25班:Ph201805201 WEB 之 页面编写 第一课 (课堂笔记)

    index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  7. 潭州课堂25班:Ph201805201 第十课 类的定义,属性和方法 (课堂笔记)

    类的定义 共同属性,特征,方法者,可分为一类,并以名命之 class Abc: # class 定义类, 后面接类名 ( 规则 首字母大写 ) cls_name = '这个类的名字是Abc' # 在类 ...

  8. 潭州课堂25班:Ph201805201 tornado 项目 第十二课 项目部署(课堂笔记)

    运行多个Tornado实例 网页响应不是特别的计算密集型处理 多个实例充分利用 CPU 多端口怎么处理 Linux 常见应用服务配置模式 nginx 和 supervisord:采用主配置文件 + 项 ...

  9. 潭州课堂25班:Ph201805201 tornado 项目 第八课 增加喜欢功能(课堂笔记)

    tornado 相关说明 新增一个页面,用来做图片收藏, 还要在 account.py 创建一个数据库表,记录用户喜欢的图片,哪些图片用户疯狂传奇 cd 到 项目目录下,执行数据库更新 alembic ...

随机推荐

  1. Callable和Future出现的原因

    创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口. 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果. 如果需要获取执行结果,就必须通过共享变量或者使用 ...

  2. Python知乎热门话题数据的爬取实战

    import requestsfrom pyquery import PyQuery as pq url = 'https://www.zhihu.com/explore'headers = { 'u ...

  3. 查看CPU 内存 硬盘 网络 查看进程使用的文件 uptime top ps -aux vmstat iostat iotop nload iptraf nethogs

    #安装命令 yum install  sysstat #包含 iostat vmstat yum install iotop yum install  nload yum install iptraf ...

  4. SqlServer2012清除日志文件

    SqlServer在使用中会产生大量的日志文件,当不需要的时候可以进行删除. 删除方式: 右键数据库-->任务-->收缩-->文件 进入收缩文件页面,按照如下配置就可以了 有时候收缩 ...

  5. Java基础知识➣发送Emai和访问MySQL数据库(七)

    概述 Java程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 JavaMail API 和Java Activation Framework (JAF) .Java访问数据则需要 使 ...

  6. 【bzoj5072】[Lydsy十月月赛]小A的树 树形背包dp

    题解: 比较好想 首先注意到如果最暴力的做法复杂度无法接受 而5000的范围基本是n^2做法了 只使用已经遍历过的点数目和当前子树中的点数目转移我们知道复杂度是n^2的 于是大胆猜测一波同一个节点为根 ...

  7. 记JS一个错误,

    在定义变量时候,如果直接定义 var obj=null;那么,在转码时候,比如转为base64,此时或出现特殊的文字(也是汉字,只是很少见少用的文字,而且,出现的文字是根据你给obj赋值决定的,) 由 ...

  8. js,JQuery实现,带筛选,搜索的select

    代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title& ...

  9. BZOJ1010 [HNOI2008]玩具装箱toy 动态规划 斜率优化

    原文链接http://www.cnblogs.com/zhouzhendong/p/8687797.html 题目传送门 - BZOJ1010 题意 一个数列$C$,然后把这个数列划分成若干段. 对于 ...

  10. scrapy下载图片报[scrapy.downloadermiddlewares.robotstxt] DEBUG: Forbidden by robots.txt:错误

    本文转自:http://blog.csdn.net/zzk1995/article/details/51628205 先说结论,关闭scrapy自带的ROBOTSTXT_OBEY功能,在setting ...