一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Tornado Web Server框架編寫簡易Python服務器

Tornado Web Server框架編寫簡易Python服務器

2021-03-23 00:39acdreamers Python

這篇文章主要為大家詳細介紹了Tornado Web Server框架編寫簡易Python服務器,具有一定的參考價值,感興趣的小伙伴們可以參考一下

我們都知道在Web開發中,都需要服務器,比如Java Web開發的Tomcat,WebLogic,WebSphere,現在來看利用Tornado Web Server框架如何寫一個簡易的Python服務器。

一般來說只需要實現get和post方法就可以了。以上次使用redis數據庫的例子說明,數據庫插入代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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()

以上代碼插入了數據,那么現在用我們的服務器來訪問一些數據。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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

即可得到需要的數據。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/ACdreamers/article/details/24668551

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费欧美日韩 | 国产精品福利在线观看秒播 | 亚洲高清国产拍精品动图 | 爱福利视频一区 | 美女被爆 | 啊好痛嗯轻一点免费 | 国产人成激情视频在线观看 | free性丰满hd性欧美厨房 | 成人福利免费在线观看 | aaa一级毛片免费 | 91短视频版高清在线观看免费 | 国产成人精品视频一区二区不卡 | 亚洲高清视频免费 | 免费高清在线观看 | 亚洲天堂99 | 国产第一福利影院 | 日韩视频一区二区三区 | 亚洲国产cao| 污黄在线观看 | 国产免费视频 | 欧美另类杂交a | 亚洲第一天堂无码专区 | 日韩一级片在线播放 | 污小说在线阅读 | 国产性tv国产精品 | 天天色国产 | 欧美香蕉| 轻轻操在线视频 | 日本免费v片一二三区 | 国产美女下面流出白浆视频 | 55夜色66夜亚州精品站 | 日本 片 成人 在线 日b视频免费 | 国产亚洲精品一区久久 | 免费观看全集 | 免费特黄一区二区三区视频一 | 草莓丝瓜芭乐樱桃榴莲色多黄 | 天堂素人在线 | 黑人双渗透 | 特级毛片全部免费播放器 | 幻女free性摘花第一次 | 九九九精品视频 |