Tornado框架

异步,可以处理高并发

tornado程序编写思路
  1. 创建一个web实例对象,第一个初始化参数为路由映射列表
  2. 定义实现路由映射列表的Handler类
  3. 创建服务器实例,绑定服务器端口
  4. 启动当前线程的IOLoop
import tornado.web
import tornado.ioloop
import tornado.httpserver
import tornado.options

# 用来定义options选项变量的方法,定义的变量可以在全局使用
# name选项变量名,default选项变量的默认值,type类型,multiple参数多个
tornado.options.define("port",default=8000,type=int)
tornado.options.define("itcast",default=[],type=str,multiple=True)

class IndexHandler(tornado.web.RequestHandler):
	def initialize(self, subject):
        self.subject = subject
	def get(self):
		self.write(self.subject)

if __name__ == '__main__':
    # 转换命令行参数,并将转换的值对应的设置到全局options对象
    # tornado.options.parse_command_line()
    # 导入配置文件
    # tornado.options.parse_config_file('./config')
    # print(tornado.options.options.itcast)
    app = tornado.web.Application([
        (r'/index',IndexHandler,{"subject":"python"}),
    ],debug=True)
    http_server=tornado.httpserver.HTTPServer(app)
    http_server.bind(tornado.options.options.port)
    http_server.start()
    tornado.ioloop.IOLoop.current().start()
获取参数
  1. self.get_query_argument(name,default,strip)
  2. self.get_query_arguments() 返回列表
  3. self.get_body_argument()
  4. self.get_body_arguments()
  5. self.get_argument()
  6. self.get_arguments()
文件的上传

files=self.request.files

from tornado import options,web,httpserver,ioloop

options.define('port',default=8000,type=int)

class IndexHandler(web.RequestHandler):
    def get(self, *args, **kwargs):
        self.write('hello Tornado')

class UploadHandler(web.RequestHandler):
    def post(self, *args, **kwargs):
        files = self.request.files
        img_files = files.get('img')
        if img_files:
            img_file = img_files[0]["body"]
            file = open('./itcast.txt','w+')
            file.write(img_file.decode('gbk'))
            file.close()
        self.write('ok')

if __name__ == '__main__':
    app = web.Application([
        (r'/',IndexHandler),
        (r'/upload',UploadHandler)
    ])
    http_server=httpserver.HTTPServer(app)
    http_server.bind(options.options.port)
    http_server.start()
    ioloop.IOLoop.current().start()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值