Flask快速實現簡單python接口


  Flask 是一個輕量級 web 框架,自由、靈活、可擴展性強。Flask 本身相當於一個內核,大部分功能都需要擴展第三方庫。 Flask 框架有多“輕量”呢,之前寫過一篇 Django實現restful api 的文章,基於 Django 框架實現的,有興趣的同學可以做下比較。在實現簡單的 api 方面, Flask 框架只需一個 .py 文件就能搞定,很簡潔很優雅。

 

1、安裝 Flask

 

 pip3 install flask

 

 

2、看下 Flask 項目目錄,很簡潔吧!本文不涉及 web 前端,只實現 API ,所以不講解 static 和 templates 。

 

 3、一個簡單、優雅的例子:

from flask import Flask
from flask import request
import json

app = Flask(__name__)


@app.route('/',methods=['GET'])
def hello_world():
    return 'Hello World!'

# 設置訪問URL:'/plus',methods:允許哪種方式訪問
@app.route('/plus',methods=['POST'])
def plus():
    data = json.loads(request.data.decode())
    x = data['x']
    y = data['y']

    return json.dumps(x+y)


if __name__ == '__main__':
    # 設置host,端口8080。threaded=True 代表開啟多線程
    app.run(host='0.0.0.0', port=8080, threaded=True)

 Flask 通過 @app.route 裝飾器來配置路由和請求方式,request.data 接收 post 請求參數,因為接收到的是字節流,需要 decode() 解碼再轉成 json 格式。Flask 可以設置 run() 參數開啟 多線程(threaded=True) 和 多進程(processes=4),但如果要上生產環境,還是得用 Nginx 或 Apache 部署,提高性能。

 

 1)運行命令 python app.py ,然后瀏覽器輸入:http://127.0.0.1:8080/

 2)測試腳本:

import requests
url = 'http://127.0.0.1:8080/plus'

h = requests.post(url=url,json={"x":2,"y":3})
print(h.text)

輸出:

 

測試OK

 

4、使用 app.run() 運行程序會有段提示語:

* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.

   意思是這只是開發者模式,不要用於生產環境。生產環境要用 WSGI 。WSGI 全稱Python Web Server Gateway Interface,指定了web服務器和Python web應用或web框架之間的標准接口,以提高web應用在一系列web服務器間的移植性。

 

 使用 WSGI 代碼如下:

from wsgiref.simple_server import make_server

if __name__ == '__main__':
    server = make_server('0.0.0.0',8080,app)
    server.serve_forever()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM