Tornado Web Server框架编写简易Python服务器

我们都知道在Web开发中,都需要服务器,比如Java Web开发的Tomcat,WebLogic,WebSphere,现在来看利用Tornado Web Server框架如何写一个简易的Python服务器。

一般来说只需要实现get和post方法就可以了。以上次使用redis数据库的例子说明,数据库插入代码如下:

import redis

import datetime

class Database:

def __init__(self):

self.host = 'localhost'

self.port = 6379

self.write_pool = {}

def add_write(self,website,city,year,month,day,deal_number):

key = '_'.join([website,city,str(year),str(month),str(day)])

val = deal_number

self.write_pool[key] = val

def batch_write(self):

try:

r = redis.StrictRedis(host=self.host,port=self.port)

r.mset(self.write_pool)

except Exception, exception:

print exception

def add_data():

beg = datetime.datetime.now()

db = Database()

for i in range(1,10000):

db.add_write('meituan','beijing',2013,i,1,i)

db.batch_write()

end = datetime.datetime.now()

print end-beg

if __name__ == '__main__':

add_data()

以上代码插入了数据,那么现在用我们的服务器来访问一些数据。

import json

import redis

import tornado.web

import tornado.httpserver

from tornado.options import define, options

define("port", default=8888, type=int)

class DealHandler(tornado.web.RequestHandler):

def initialize(self):

self.port = 6379

self.host = "localhost"

def get(self):

website = self.get_argument("website",None)

city = self.get_argument("city",None)

year = self.get_argument("year",None)

month = self.get_argument("month",None)

keyset = []

for i in range(1,31):

key = '_'.join([website,city,year,month,str(i)])

keyset.append(key)

r = redis.StrictRedis(host=self.host,port=self.port)

self.write( json.dumps(r.mget(keyset)) )

class ExampleHandler(tornado.web.RequestHandler):

def get(self):

who = self.get_argument("who", None)

if who:

self.write("Hello, " + who)

else:

self.write("Hello World!")

def post(self):

who = self.get_argument("who", None)

if who:

self.write("Hello, " + who)

else:

self.write("Hello World!")

class Application(tornado.web.Application):

def __init__(self):

handlers = [

(r"/", ExampleHandler),

(r"/deal", DealHandler),

]

settings = dict()

tornado.web.Application.__init__(self, handlers, settings)

def create_server():

tornado.options.parse_command_line()

http_server = tornado.httpserver.HTTPServer(Application())

http_server.listen(options.port)

tornado.ioloop.IOLoop.instance().start()

if __name__ == "__main__":

create_server()

以上代码实现了一个简单的服务器,用于处理http请求。

在浏览器中输入:

http://localhost:8888/deal?website=meituan&city=beijing&year=2013&month=9

即可得到需要的数据。

以上是 Tornado Web Server框架编写简易Python服务器 的全部内容, 来源链接: utcz.com/z/356251.html

回到顶部