Tornado-操作演示-1

Tornado基本功能演示

# 孙 伟 

# CTRL+Y 删除一行
# CTRL+D 复制一行

# tornado最基本的功能演示

# ALT+ENTER 万能提示

import tornado
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.web import Application, RequestHandler

# 用来响应用户请求
class IndexHandler(RequestHandler):
    #响应以get方式发起的请求
    def get(self, *args, **kwargs):
        # 服务器给浏览器的响应内容
        self.write('hello aid1710')
    #响应以post方式发起的请求
    def post(self, *args, **kwargs):
        pass


#创建Application对象,进行若干个对服务器的设置
#例如:路由列表,模板路径,静态资源路径等
app = Application([('/',IndexHandler)])
#创建服务器程序
server = HTTPServer(app)
#服务器监听某个端口(建议使用10000以上的端口)
server.listen(8888)#10000
#启动服务器(在当前进程中启动服务器)
IOLoop.current().start()

tornado读取配置文件中的信息演示


# tornado读取配置文件中的信息演示


import tornado
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.options import define, options, parse_config_file
from tornado.web import Application, RequestHandler

# 用来响应用户请求
class IndexHandler(RequestHandler):
    #响应以get方式发起的请求
    def get(self, *args, **kwargs):
        # 服务器给浏览器的响应内容
        self.write('hello aid1710')
    #响应以post方式发起的请求
    def post(self, *args, **kwargs):
        pass

#定义一个变量,用来代表端口号
define('port',type=int,default=8888,multiple=False)
#定义一个变量,用来代表数据库的连接信息(用户名,密码,端口号,数据库名称)
define('db',multiple=True,type=str,default=[])
#从指定的配置文件中,读取port的内容
parse_config_file('config')

#创建Application对象,进行若干个对服务器的设置
#例如:路由列表,模板路径,静态资源路径等
app = Application([('/',IndexHandler)])
#创建服务器程序
server = HTTPServer(app)
#服务器监听某个端口(建议使用10000以上的端口)
server.listen(options.port)#10000
#打印获得的数据库参数
print('数据库参数:',options.db)
#启动服务器(在当前进程中启动服务器)
IOLoop.current().start()

config文件

port=9999
db=['root','123456','3306','testdb']

tornado读取客户端以json字符串提交的数据演示


# tornado读取客户端以json字符串提交的数据演示
# json字符串: {"key1":"val1","key2":"val2"}
import json

import tornado
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.options import define, options, parse_config_file
from tornado.web import Application, RequestHandler

# 用来响应用户请求
class IndexHandler(RequestHandler):
    #响应以get方式发起的请求
    def get(self, *args, **kwargs):
        # 服务器给浏览器的响应内容
        self.write('hello aid1710')
    #响应以post方式发起的请求
    def post(self, *args, **kwargs):

        #利用request属性
        #取出客户端提交的json字符串
        jsonbyte = self.request.body
        print('二进制格式json字符串:',jsonbyte)
        jsonstr = jsonbyte.decode('utf8')
        print('json字符串:', jsonstr)

        #从json字符串转换为json对象,然后利用json对象提供的api
        #从json字符串中取出我想要的内容(解析json字符串)
        jsonobj = json.loads(jsonstr)
        day = jsonobj.get('day')
        title = jsonobj.get('title')
        print('day: ',day,', title: ',title)

        self.write('hello post')

#定义一个变量,用来代表端口号
define('port',type=int,default=8888,multiple=False)
#定义一个变量,用来代表数据库的连接信息(用户名,密码,端口号,数据库名称)
define('db',multiple=True,type=str,default=[])
#从指定的配置文件中,读取port的内容
parse_config_file('config')

#创建Application对象,进行若干个对服务器的设置
#例如:路由列表,模板路径,静态资源路径等
app = Application([('/',IndexHandler)])
#创建服务器程序
server = HTTPServer(app)
#服务器监听某个端口(建议使用10000以上的端口)
server.listen(options.port)#10000
#打印获得的数据库参数
print('数据库参数:',options.db)
#启动服务器(在当前进程中启动服务器)
IOLoop.current().start()

tornado读取客户端提交的访问参数演示


# tornado读取客户端提交的访问参数演示


import tornado
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.options import define, options, parse_config_file
from tornado.web import Application, RequestHandler

# 用来响应用户请求
class IndexHandler(RequestHandler):
    #响应以get方式发起的请求
    def get(self, *args, **kwargs):
        #CTRL + / 注释代码
        # 第一种处理不传参数的方式
        # try:
        #     arg = self.get_query_argument('day')
        # except Exception as e:
        #     arg = None

        #第二种处理不传参数的方式
        arg = self.get_query_argument('day',None)

        print('arg---->',arg)
        args = self.get_query_arguments('day')
        print('args---->',args)

        # 服务器给浏览器的响应内容
        self.write('hello aid1710')
    #响应以post方式发起的请求
    def post(self, *args, **kwargs):

        arg = self.get_body_argument('day',None)
        print('post方式获取的arg: ',arg)
        args = self.get_body_arguments('day')
        print('post方式获取的args: ', args)


        #get_argument = get_query_argument+get_body_argument
        arg2 = self.get_argument('day')
        print('get_argument获取的arg: ',arg2)
        arg2s = self.get_arguments('day')
        print('get_arguments获取的args: ', arg2s)

        #利用RequestHandler中的一个属性request
        #获取请求头中感兴趣的内容
        #Content-Type, myheader, yourheader
        head = self.request.headers
        print('head的类型:',type(head))
        ct = head.get('Content-Type',None)
        mh = head.get('myheader',None)
        yh = head.get('yourheader',None)

        print('Content-Type--->',ct)
        print('myheader--->',mh)
        print('yourheader--->',yh)





        self.write('hello post')

#定义一个变量,用来代表端口号#fkadsfjklsadjklf
define('port',type=int,default=8888,multiple=False)
#定义一个变量,用来代表数据库的连接信息(用户名,密码,端口号,数据库名称)
define('db',multiple=True,type=str,default=[])
#从指定的配置文件中,读取port的内容
parse_config_file('config')

#创建Application对象,进行若干个对服务器的设置
#例如:路由列表,模板路径,静态资源路径等
app = Application([('/',IndexHandler)])
#创建服务器程序
server = HTTPServer(app)
#服务器监听某个端口(建议使用10000以上的端口)
server.listen(options.port)#10000
#打印获得的数据库参数
print('数据库参数:',options.db)
#启动服务器(在当前进程中启动服务器)
IOLoop.current().start()

tornado路由列表的演示


# tornado路由列表的演示


import tornado
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.options import define, options, parse_config_file
from tornado.web import Application, RequestHandler, url


# 用来响应用户请求
class IndexHandler(RequestHandler):
    #响应以get方式发起的请求
    def get(self, *args, **kwargs):
        # 服务器给浏览器的响应内容
        self.write('<a href=/python>hello python</a>')
    #响应以post方式发起的请求
    def post(self, *args, **kwargs):
        pass

#用来响应用户/java请求
class JavaHandler(RequestHandler):
    #重写RequestHandler中initialize方法
    #获取动态设置的参数(greeting,info)
    def initialize(self,greeting,info):
        self.greeting = greeting
        self.info = info

    def get(self, *args, **kwargs):
        #write方法只能接受一个字符串类型的参数
        self.write(self.greeting+','+self.info)

    def post(self, *args, **kwargs):
        pass

#用来响应用户/python请求
class PythonHandler(RequestHandler):
    def get(self, *args, **kwargs):

        self.write('你好, 拍森')
        self.write('<br>')
        self.write('<a href=%s>Jump To Java</a>' % self.reverse_url('java_url'))
    def post(self, *args, **kwargs):
        pass

#定义一个变量,用来代表端口号
define('port',type=int,default=8888,multiple=False)
#定义一个变量,用来代表数据库的连接信息(用户名,密码,端口号,数据库名称)
define('db',multiple=True,type=str,default=[])
#从指定的配置文件中,读取port的内容
parse_config_file('config')

#创建Application对象,进行若干个对服务器的设置
#例如:路由列表,模板路径,静态资源路径等



app = Application([('/',IndexHandler),
                   url('/java',JavaHandler,{'greeting':'你好','info':'家蛙'},name='java_url'),
                   ('/python',PythonHandler)])
#创建服务器程序
server = HTTPServer(app)
#服务器监听某个端口(建议使用10000以上的端口)
server.listen(options.port)#10000
#打印获得的数据库参数
print('数据库参数:',options.db)
#启动服务器(在当前进程中启动服务器)
IOLoop.current().start()

PythonHandler


# tornado路由列表
# /python
# /python/day1
# /python/day1/basic
# 以上格式路径都交给PythonHandler来处理


import tornado
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.options import define, options, parse_config_file
from tornado.web import Application, RequestHandler, url


# 用来响应用户请求
class IndexHandler(RequestHandler):
    #响应以get方式发起的请求
    def get(self, *args, **kwargs):
        # 服务器给浏览器的响应内容
        self.write('<a href=/python>hello python</a>')
    #响应以post方式发起的请求
    def post(self, *args, **kwargs):
        pass

#用来响应用户/java请求
class JavaHandler(RequestHandler):
    #重写RequestHandler中initialize方法
    #获取动态设置的参数(greeting,info)
    def initialize(self,greeting,info):
        self.greeting = greeting
        self.info = info

    def get(self, *args, **kwargs):
        #write方法只能接受一个字符串类型的参数
        self.write(self.greeting+','+self.info)

    def post(self, *args, **kwargs):
        pass

#用来响应用户/python请求
class PythonHandler(RequestHandler):

    def get(self,day=None,title=None, *args, **kwargs):

        self.write('你好, 拍森')
        self.write('<br>')
        self.write('<a href=%s>Jump To Java</a>' % self.reverse_url('java_url'))
        self.write('<br>')
        if day:
            self.write('第几天: '+day)
        if title:
            self.write('课程内容:'+title)

    def post(self, *args, **kwargs):
        pass

#定义一个变量,用来代表端口号
define('port',type=int,default=8888,multiple=False)
#定义一个变量,用来代表数据库的连接信息(用户名,密码,端口号,数据库名称)
define('db',multiple=True,type=str,default=[])
#从指定的配置文件中,读取port的内容
parse_config_file('config')

#创建Application对象,进行若干个对服务器的设置
#例如:路由列表,模板路径,静态资源路径等



app = Application([('/',IndexHandler),
                   url('/java',JavaHandler,{'greeting':'你好','info':'家蛙'},name='java_url'),
                   ('/python',PythonHandler),
                   ('/python/([a-zA-Z0-9]+)',PythonHandler),
                   ('/python/([a-zA-Z0-9]+)/([a-zA-Z]+)',PythonHandler)])
#创建服务器程序
server = HTTPServer(app)
#服务器监听某个端口(建议使用10000以上的端口)
server.listen(options.port)#10000
#打印获得的数据库参数
print('数据库参数:',options.db)
#启动服务器(在当前进程中启动服务器)
IOLoop.current().start()

tornado读取客户端上传的文件(以图像文件做演示)并存储


# tornado读取客户端上传的文件(以图像文件做演示)并存储


import tornado
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.options import define, options, parse_config_file
from tornado.web import Application, RequestHandler

# 用来响应用户请求
class IndexHandler(RequestHandler):
    #响应以get方式发起的请求
    def get(self, *args, **kwargs):
        # 服务器给浏览器的响应内容
        self.write('hello aid1710')
    #响应以post方式发起的请求
    def post(self, *args, **kwargs):
        #利用request对象
        #获得客户端提交的文件内容
        files = self.request.files
        avatars = files.get('avatar')
        for avatar in avatars:
            filename = avatar.get('filename')
            print('filename:',filename)
            ext = avatar.get('content_type')
            print('文件类型',ext)
            data = avatar.get('body')#二进制格式的文件内容


            #把内容进行保存(往磁盘上保存)
            writer = open('upload/%s' % filename,'wb')
            writer.write(data)
            writer.close()

        self.write('hello post')

#定义一个变量,用来代表端口号
define('port',type=int,default=8888,multiple=False)
#定义一个变量,用来代表数据库的连接信息(用户名,密码,端口号,数据库名称)
define('db',multiple=True,type=str,default=[])
#从指定的配置文件中,读取port的内容
parse_config_file('config')

#创建Application对象,进行若干个对服务器的设置
#例如:路由列表,模板路径,静态资源路径等
app = Application([('/',IndexHandler)])
#创建服务器程序
server = HTTPServer(app)
#服务器监听某个端口(建议使用10000以上的端口)
server.listen(options.port)#10000
#打印获得的数据库参数
print('数据库参数:',options.db)
#启动服务器(在当前进程中启动服务器)
IOLoop.current().start()

转载于:https://www.cnblogs.com/-hjj/p/9946249.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值