tornaod环境搭建及基本框架搭建——成功运行第一个基于tornado搭建的服务器框架

网友投稿 738 2022-05-30

tornado官方文档:

官方英文

中文4.3

1.项目环境搭建

与本人django项目环境搭建步骤一样(不同点如下!):

(1)windows本地存储项目的文件夹为:tudo_first

(2)ubuntu下创建的tornado项目环境

ubuntu命令:

tornaod环境搭建及基本框架搭建——成功运行第一个基于tornado搭建的服务器框架

mkvirtualenv -p python3 tudo

ubuntu命令:

pip install tornado==5.1.1

ubuntu查看安装包命令:

pip list

(3)ubuntu中存储项目的文件夹为:tudo_file

2.tornado搭建测试

①测试代码(hello.py):

# 运行tornado的库 import tornado.ioloop import tornado.web # HTTP请求处理 类似Django里的类视图 class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world") # 定义接口 Application = tornado.web.Application( [(r'/',MainHandler)] ) if __name__ == '__main__': # 定义端口 application.listen(8080) # 运行tornado tornado.ioloop.IOLoop.current().start()

②ubuntu中浏览器访问指定端口(127.0.0.1:8080)出现如下响应即为测试成功——可以进行项目开发!

3.正式进入此tornado项目的搭建之基本框架的搭建

①编写tornado运行文件(app.py):

如果逻辑同测试代码,会造成本py文件会过大的后果——同时包含定义接口及类视图,而且不易区分具体代码块的功能;

所以,现采用另一种写法——继承并重写定义接口的类tornado.web.Application,使得定义接口与类视图分开编写!!!

import tornado.ioloop import tornado.web import tornado.options from tornado.options import define,options # 导入请求处理类文件 from handlers import main # 名字,默认端口,帮助信息,类型 define('port',default='8000',help='Listeningport',type=int) # 重写 class Application(tornado.web.Application): def __init__(self): handlers = [ ('/',main.IndexHandler), ('/explore',main.ExploreHandler), # 定义一个可以传参的接口 ('/post/(?P[0-9]+)',main.PostHandler), ] settings = dict( debug=True, # 配置模板路径 template_path='templates', # 配置静态文件路径 static_path='static' ) # 继承父类 super().__init__(handlers, **settings) application = Application() if __name__ == '__main__': # 控制台打印访问记录 tornado.options.parse_command_line() # 端口 application.listen(options.port) print('Server start on port {}'.format(options.port)) tornado.ioloop.IOLoop.current().start()

②创建handlers包,并在里面创建main.py文件用于编写业务逻辑:

import tornado.web class IndexHandler(tornado.web.RequestHandler): def get(self, *args, **kwargs): self.render('index.html') class ExploreHandler(tornado.web.RequestHandler): def get(self, *args, **kwargs): self.render('explore.html') class PostHandler(tornado.web.RequestHandler): def get(self, post_id): # 传递参数到post.html self.render('post.html',post_id=post_id)

③创建模板文件(templates文件夹里):

(1)父模板——用于模板继承(base.html):

{% block title %}Tornado Title{% end %} {% block content %}Default body of base {% end %}

(2)index.html——首页:

{% extends 'base.html' %} {% block title %} index page{% end %} {% block content %} I am index {% end %}

(3)explore.html——发现页:

{% extends 'base.html'%} {% block title %}explore page{% end %} {% block content %} I am explore {% end %}

(4)post.html——详情页:(展示接收到的参数post_id)

{% extends 'base.html' %} {% block title %} post page {% end %} {% block content %} I am post {{ post_id }} {% end %}

④创建static文件用于存放js和css

⑤运行项目:(运行app.py文件即可!)

Python Tornado

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:高效开发!借助 Mac + Windows 实现八屏办公!
下一篇:jumpserver 0.3.2 install on centos 6
相关文章