Tornado 学习

本文介绍了Tornado这一高性能的Python Web服务器框架,它为解决C10K问题而设计,具备处理安全性、用户验证等功能。Tornado包括路由系统、视图和模板语言等组件,通过类来处理数据交互,支持GET和POST请求。文章详细讲解了Tornado的基本框架、设置、登录注册功能以及数据库操作,并提供了示例代码。
摘要由CSDN通过智能技术生成
简介:Tornado是使用Python编写的一个强大的、可扩展的Web服务器。它在处理严峻的网络流量时表现得足够强健,
      但却在创建和编写时有着足够的轻量级,并能够被用在大量的应用和工具中。不同于那些最多只能达到10,000个
      并发连接的传统网络服务器,Tornado在设计之初就考虑到了性能因素,旨在解决C10K问题,这样的设计使得其
      成为一个拥有非常高性能的框架。此外,它还拥有处理安全性、用户验证、社交网络以及与外部服务(如数据
      库和网站API)进行异步交互的工具。
内容:Tonado由 路由系统、视图、模板语言4大部分组成,
      tornado.ioloop  # 核心IO循环模块
      tornado.web  # Web框架模块
安装:pip install tornado == 3.5

1. 基本框架
    import tornado.ioloop
    import tornado.web
    class MainHandler(tornado.web.RequestHandler):  # 定义主页面的数据信息处理
        def get(self):
            self.write('hellow ,world')

    application=tornado.web.Application([ (r'/index/',MainHandler) ])  # 路由

    if __name__ == '__main__':
        application.listen(8888)                  #创建1个socket对象,指定端口号
        tornado.ioloop.IOLoop.instance().start()  #conn,addr=socket.accept()进入监听状态

2. Tornado是通过类来处理数据交互的,有get()和post()方法来分别处理GET和POST请求。

3. 配置文件:
    settings = {
        "cookie_secret": "P2oowNOASlicZbPekv6vsQjkJ4MDFktspMoWxNwX0ZQ=",
        "login_url": "/login",
        "template_path": os.path.join(os.path.dirname(__file__), "templates"),  # 配置模板路径
        "debug": True,        # 当值是True时,实时跟新数据,跟新路由时服务需要重启
      }

4. 定义login登录
import os, re, hashlib
import tornado.ioloop  # 核心IO循环模块
import tornado.web  # Web框架模块
import tornado.escape
from mongodbs import db

def md5(s, salt='encodeutf-8'):  # md5加密,用于注册时给密码加密使用
    new_s = str(s) + salt
    m = hashlib.md5(new_s.encode())
    return m.hexdigest()

class BaseHandler(tornado.web.RequestHandler):   # 定义基础类,继承自tornado.web.RequestHandler
    def get_current_user(self):     # 获取 cookie 数据
        return self.get_secure_cookie("user")

class RegisterHandler(BaseHandler):  # 定义注册类,继承BaseHandler
    def get(self):    # GET请求,获取注册页面
        self.render('register.html')

    def post(self):   # POST请求,获取注册页面传参,处理数据
        account = self.get_argument("account")
        password = self.get_argument("password")
        if account == "" or password == "":   # 用户名和密码为空时,给出提示
            return self.write("<script>alert('用户名或密码不能为空');window.history.back
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值