Tornado是如今的主流 Web 服務器框架,它與大多數 Python 的框架有着明顯的區別:它是非阻塞式服務器,並且速度至關快。得利於其非阻塞的方式和對 epoll 的運用,Tornado 每秒能夠處理數以千計的鏈接,這意味着對於實時 Web 服務來講,Tornado 是一個理想的 Web 框架。
在本文中,咱們將介紹tornado的HTTP請求,包括GET、POST請求,並將介紹如何來測試該app.
咱們的項目結構以下:html
tornado.py的完整代碼以下:web
# tornado的GET、POST請求示例 import os.path import tornado.httpserver import tornado.ioloop import tornado.options import tornado.web from tornado.options import define, options #定義端口爲8080 define("port", default=8080, help="run on the given port", type=int) # GET請求 class IndexHandler(tornado.web.RequestHandler): # get函數 def get(self): self.render('index.html') # POST請求 # POST請求參數: name, age, city class InfoPageHandler(tornado.web.RequestHandler): # post函數 def post(self): name = self.get_argument('name') age = self.get_argument('age') city = self.get_argument('city') self.render('infor.html', name=name, age=age, city=city) # 主函數 def main(): tornado.options.parse_command_line() # 定義app app = tornado.web.Application( handlers=[(r'/', IndexHandler), (r'/infor', InfoPageHandler)], #網頁路徑控制 template_path=os.path.join(os.path.dirname(__file__), "templates") # 模板路徑 ) http_server = tornado.httpserver.HTTPServer(app) http_server.listen(options.port) tornado.ioloop.IOLoop.instance().start() main()
templates文件夾爲存放HTML文件的模板目錄,其中index.html的代碼以下:瀏覽器
<!DOCTYPE html> <html> <head><title>Person Info</title></head> <body> <h2>Enter your information:</h2> <form method="post" action="/infor"> <p>name<br><input type="text" name="name"></p> <p>age<br><input type="text" name="age"></p> <p>city<br><input type="text" name="city"></p> <input type="submit"> </form> </body> </html>
infor.html的代碼以下:服務器
<!DOCTYPE html> <html> <head><title>Welcome</title></head> <body> <h2>Welcome</h2> <p>Hello, {{name}}! You are {{age}} years old now , and you live in {{city}}.</p> </body> </html>
這樣咱們就完成了tornado的一個簡單的HTTP請求的示例項目。在瀏覽器中輸入localhost:8080/,界面以下,並在輸入框中輸入以下:app
點擊「提交」按鈕後,頁面以下:框架
以上咱們已經完成了這個web app的測試,可是在網頁中測試每每並不方便。如下咱們將介紹二者測試web app的方法:curl
首先是postman. postman 提供功能強大的 Web API 和 HTTP 請求的調試,它可以發送任何類型的HTTP 請求 (GET, POST, PUT, DELETE…),而且能附帶任何數量的參數和 Headers.
首先是GET請求的測試:函數
在Body中有三種視圖模式:Pretty,Raw,Preview, Pretty爲HTML代碼, Raw爲原始視圖,Preview爲網頁視圖。
接着是POST請求:tornado
在Linux中,咱們還能夠用curl命令來測試以上web app.在Linux中,curl是一個利用URL規則在命令行下工做的文件傳輸工具,能夠說是一款很強大的http命令行工具。它支持文件的上傳和下載,是綜合傳輸工具。
首先是curl的GET請求:工具
接着是curl的POST請求:
在本次分享中,咱們介紹了tornado的HTTP請求,包括GET、POST請求,並將介紹如何使用postman和curl來測試該app. 本次分享到此結束,歡迎你們交流~~