1. 程式人生 > >tornado伺服器以JSON字串作為對客戶端的響應演示

tornado伺服器以JSON字串作為對客戶端的響應演示


# tornado伺服器以JSON字串作為對客戶端的響應演示
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):
    def initialize(self):
        print('initialize方法執行')
    #響應以get方式發起的請求
    def get(self, *args, **kwargs):
        print('get方法執行')
        # 伺服器給瀏覽器的響應內容
        #1)建立一個字典
        resp={'key1':'value1','key2':'value2'}
        #resp2=dict(key1='value1',key2='value2')
        #2)將字典轉為一個JSON格式的字串
        respstr = json.dumps(resp)
        #3)將json字串交回客戶端
        #我的響應頭Content-Type=text/html
        self.write(respstr)
        #4)設定響應頭
        self.set_header('Content-Type','application/json;charset=utf-8')
        #self.write(resp)


    #響應以post方式發起的請求
    def post(self, *args, **kwargs):
        pass

    def on_finish(self):
        print('on_finish方法執行')





#定義一個變數,用來代表埠號
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()