1.獲取查詢字符串參數python
get_query_argument(鍵名,default=默認值 ,strip=是否過濾兩邊空白字符,默認True)web
get_query_arguments()同上。當一個鍵對應多個值時返回列表,上方法僅返回最後一個正則表達式
2.獲取請求體參數django
get_body_argument() 同上json
get_body_arguments() 同上服務器
對於請求體中的數據要求爲字符串,且格式爲表單編碼格式(與url中的請求字符串格式相同),即 key1=value1&key2=value2,HTTP報文頭Header中的"Content-Type"爲application/x-www-form-urlencoded 或 multipart/form-data。對於請求體數據爲json或xml的,沒法經過這兩個方法獲取。app
3.以上兩類方法的整合tornado
get_argument() 同上oop
get_arguments() 同上post
以上方法返回的都是unicode字符串
4.關於請求的其餘信息
RequestHandler.request 對象存儲了關於請求的相關信息,具體屬性有:
{
"form_filename1":[<tornado.httputil.HTTPFile>, <tornado.httputil.HTTPFile>], "form_filename2":[<tornado.httputil.HTTPFile>,], ... }
tornado.httputil.HTTPFile是接收到的文件對象,它有三個屬性:import tornado.web import tornado.ioloop import tornado.httpserver import tornado.options from tornado.options import options, define from tornado.web import RequestHandler define("port", default=8000, type=int, help="run server on the given port.") class IndexHandler(RequestHandler): def get(self): self.write("hello itcast.") class UploadHandler(RequestHandler): def post(self): files = self.request.files img_files = files.get('img') if img_files: img_file = img_files[0]["body"] file = open("./itcast", 'w+') file.write(img_file) file.close() self.write("OK") if __name__ == "__main__": tornado.options.parse_command_line() app = tornado.web.Application([ (r"/", IndexHandler), (r"/upload", UploadHandler), ]) http_server = tornado.httpserver.HTTPServer(app) http_server.listen(options.port) tornado.ioloop.IOLoop.current().start()
5.tornado支持正則提取url中的參數
app = tornado.web.Application([ (r"/", IndexHandler), (r"/sub-city/(.+)/([a-z]+)", SubjectCityHandler), # 無名方式 (r"/sub-date/(?P<subject>.+)/(?P<date>\d+)", SubjectDateHandler), # 命名方式 ])
與django相似