tornado獲取get,post,位址列,headers中的資訊
阿新 • • 發佈:2018-11-16
# tornado讀取客戶端提交的訪問引數演示 #獲取引數用 arg=self.get_query_argumnet() -----get方式 #args=self.get_query_arguments() -----get方式 #異常,不傳遞引數時的處理 #post方式獲取引數 ''' 前端方式提交post的時候,會以name的值的屬性為鍵,input中的值為值傳遞給後臺 真正的post到後臺的資料時放到請求體中的 arg=self.get_body_argument() args=self.get_body_arguments() ----------------------------------------------- 第三種取參 先獲取位址列中的內容,在取請求體中的內容 #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) 獲取請求頭中的資訊 self.request.headers ''' 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()