2.tornado环境搭建及基本框架搭建——熟悉的hello world

本文介绍了如何在Ubuntu上搭建Tornado项目环境,包括创建Python虚拟环境,安装Tornado 5.1.1。接着展示了从编写简单的Hello World应用到构建项目基本框架的过程,包括编写app.py,创建handlers包和main.py文件,设立templates和static文件夹,以及运行项目的详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

每篇前言:


👇
☝️

1.项目环境搭建

为了模拟真实工作中项目开发,本专栏项目开发也是采用本地pycharm连接远程虚拟机的方式进行开发。环境搭建步同django项目环境搭建步骤一样(换汤不换药,之前很详细的讲过了):《2.一步一步教你使用pycharm运行起第一个Django项目》

  1. 虚拟机中创建本项目运行的python虚拟环境(指定python版本为python3)
    ubuntu命令:
mkvirtualenv -p python3 tudo
  1. 安装tornado库(指定版本为5.1.1)
    ubuntu命令:
pip install tornado==5.1.1
  1. ubuntu查看安装包命令:
pip list

在这里插入图片描述

2.tornado项目基本框架搭建

①熟悉的hello world

  1. 代码(hello.py):
# -*- coding: utf-8 -*-
"""
__author__ = 孤寒者
"""
# 运行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()
  1. 运行上面的py文件后浏览器访问指定端口(127.0.0.1:8080)出现如下响应即为测试成功——可以进行项目开发!

在这里插入图片描述

3.本项目基本框架的搭建

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

  • 如果所有代码都像测试代码那样写一起,会造成一个py文件过大的后果——同时包含定义接口及类视图等所有代码,而且不易区分具体代码块的功能(当然,如果你非要那样做也不是不可以,tornado就是这么随意~);
  • 所以,现采用另一种写法——继承并重写定义接口的类tornado.web.Application,使得定义接口与类视图分开编写!!!
# -*- coding: utf-8 -*-
"""
__author__ = 孤寒者
"""
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文件编写业务逻辑:

在这里插入图片描述

# -*- coding: utf-8 -*-
"""
__author__ = 孤寒者
"""
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>
  1. 首页(index.html):
{% extends 'base.html' %}


{% block title %} index page{% end %}

{% block content %}
I am index
{% end %}
  1. 发现页(explore.html):
{% extends 'base.html'%}

{% block title %}explore page{% end %}

{% block content %}
I am explore
{% end %}
  1. 详情页(post.html):【展示接收到的参数post_id
{% extends 'base.html' %}

{% block title %} post page {% end %}
{% block content %}
I am post {{ post_id }}
{% end %}

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

⑤运行项目:

在这里插入图片描述在这里插入图片描述在这里插入图片描述


👇🏻可通过点击下面——>关注本人运营 公众号👇🏻

🎯 深度交流 | 📌 标注“来自 优快云”
🌟 解决问题,拓展人脉,共同成长!(非诚勿扰)
🚀 不止是交流,更是你的技术加速器!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孤寒者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值