tornado學習筆記(1)HTTP請求及API測試

  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

GET請求

  點擊「提交」按鈕後,頁面以下:框架

POST請求

  以上咱們已經完成了這個web app的測試,可是在網頁中測試每每並不方便。如下咱們將介紹二者測試web app的方法:curl

  • postman
  • curl

  首先是postman. postman 提供功能強大的 Web API 和 HTTP 請求的調試,它可以發送任何類型的HTTP 請求 (GET, POST, PUT, DELETE…),而且能附帶任何數量的參數和 Headers.
  首先是GET請求的測試:函數

postman的GET請求

在Body中有三種視圖模式:Pretty,Raw,Preview, Pretty爲HTML代碼, Raw爲原始視圖,Preview爲網頁視圖。
  接着是POST請求:tornado

postman的POST請求

  在Linux中,咱們還能夠用curl命令來測試以上web app.在Linux中,curl是一個利用URL規則在命令行下工做的文件傳輸工具,能夠說是一款很強大的http命令行工具。它支持文件的上傳和下載,是綜合傳輸工具。
  首先是curl的GET請求:工具

curl的GET請求

  接着是curl的POST請求:

curl的POST請求

  在本次分享中,咱們介紹了tornado的HTTP請求,包括GET、POST請求,並將介紹如何使用postman和curl來測試該app.  本次分享到此結束,歡迎你們交流~~

相關文章
相關標籤/搜索