Python用tornado的websocket开发聊天室

用tornado开发基于异步websocket聊天室-demo

开发环境:IDE(vscode);python(3.8至3.10都行);数据库(mysql)。
项目类型:DEMO(简单的测试项目,用于基础学习)
项目说明:这是参照网上的视频和相关书籍,自己仿照着写的,前段html文件的排版,几乎没有,demo而已,不要见外。通过用户登录,进入聊天室,然后可以实现多用户同时在线聊天。

目录结构

app
/application.py
/views.py

static
/css
/chat.css
/images
/js
/jquery.js
/server.js

templates
/chat.html
/login.html

venv

main.py

Python包

执行pip list可以查看现有安装的包。
aiomysql 0.0.22
autopep8 1.6.0
pip 21.2.4
pycodestyle 2.8.0
PyMySQL 0.9.3
setuptools 58.1.0
toml 0.10.2
tornado 6.1

main.py

import tornado.httpserverimport tornado.ioloopimport tornado.optionsfrom tornado.options import define, optionsfrom app.application import applicationimport osdefine("port", default=8080, help="run on the given port", type=int)def main():    tornado.options.parse_command_line()    app = application()    http_server = tornado.httpserver.HTTPServer(app)    http_server.listen(options.port)    tornado.ioloop.IOLoop.current().start()if __name__ == "__main__":    main()

app/application.py

import tornado
import os
from app.views import MainHandler, LoginHandler, ChatHandler




def application():
    return tornado.web.Application(handlers=[
        (r'/', MainHandler),
        (r'/login/', LoginHandler),
        (r'/chat/', ChatHandler),
    ],
        template_path=os.path.join(os.path.abspath(
            os.path.dirname(os.path.dirname(__file__))), 'templates'),
        static_path=os.path.join(os.path.abspath(
            os.path.dirname(os.path.dirname(__file__))), 'static'),
    )

app/views.py

from re import I
from tornado.web import RequestHandler
from tornado.websocket import WebSocketHandler
import aiomysql




class MainHandler(RequestHandler):


    def get(self):
        self.write('get')
    # get方法一般用于查询


    def post(self):
        self.write('post')
    # post方法一般用于新增数据


    def delete(self):
        self.write('delete')
    # delete方法一般用于删除数据


    def put(self):
        self.write('put')
    # put方法一般用于数据的批量修改


    def patch(self):
        self.write('patch')
    # patch方法一般用于单个或者局部数据的修改




class LoginHandler(RequestHandler):


    def get(self):
        self.render(
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值