First——tornaod 环境搭建及基本框架搭建,2021 最新爱奇艺 Python 社招面试题目
[](
)(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<post_id>[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):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}Tornado Title{% end %}</title>
</head>
<body>
{% block content %}Default body of base {% end %}
</body>
</html>
最后
?? 硬核资料:关注即可领取 PPT 模板、简历模板、行业经典书籍 PDF。
?? 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
?? 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
?? 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。
评论