flask 是乙個簡單且十分強大的python web 框架。它被稱為微框架,「微」並不是意味著把整個web應用放入到乙個python檔案,微框架中的「微」是指flask旨在保持**簡潔且易於擴充套件,flask框架的主要特徵是核心構成比較簡單,但具有很強的擴充套件性和相容性,程式設計師可以使用python語言快速實現乙個**或 web服務。因此flask能很方便構建乙個web服務,給外部也可以叫做客戶端提供web服務,針對flask框架這種特點我們可以很容易構建api介面,供客戶端訪問。
首先安裝需要的flask模組,如果你的環境已經安裝了pip則鍵入:pip install flask即可安裝完成
1.1 構建get請求方法的介面
在pycharm中新建py檔案,編輯如下**
# -*- coding: utf-8 -*-然後執行該py檔案,則該檔案執行在本地就是乙個web服務,用瀏覽器或者postman嘗試訪問該服務的url即可import flask,json
import time
server = flask.flask(__name__) # 建立乙個服務,把當前這個python檔案當做乙個服務
@server.route('/viid/system/time', methods=['get']) # @server.route()可以將普通函式轉變為服務、介面的路徑、請求方式,如果不寫methods則預設get方法
def time():
'''查詢字串:無,訊息體:無,返回結果:systemtime'''
response_data =
}return json.dumps(response_data, ensure_ascii=false)
if __name__ == '__main__':
server.run(debug=true, port=5000, host='10.82.25.11') # 指定訪問埠、host
瀏覽器訪問:
postman發請求訪問:
瀏覽器或者postman請求完成後,在pycharm的輸出欄會輸出如下:
其它的請求如post、put、delete等方法,在methods引數中指明即可,不過post、put、delete等方法不能由瀏覽器直接訪問,因為瀏覽器預設訪問時是get方法,可以用postman按指定的方法發請求
1.2 獲取帶json格式請求體的介面
@server.route('/data',methods=['post'])使用postman作為客戶端傳送帶json請求體的請求,如下圖:def post_json():
if flask.request.is_json:
print(flask.request.json)
name = flask.request.json.get('name') # 獲取json請求體的第乙個引數的值
age = flask.request.json.get('age') # 獲取json請求體的第二個引數的值
data =
return json.dumps(data,ensure_ascii=false)
else:
return json.dumps(,ensure_ascii=false)
1.3 獲取get請求中傳送的引數
flask提供的方法是:
value = flask.request.args.get('name') # 獲取get請求引數name的值1.4 構建動態url以及響應體的重定向
很多時候,客戶端請求的url是變化的,也就是帶有動態引數的,flask也是可以輕鬆的構建提供動態引數的url資源服務並重定向響應體,**如下:
# -*- coding: utf-8 -*-後面無論postman或者客戶端傳送的url中的id引數是啥,都可以響應import flask,json
from flask import url_for,redirect
server = flask.flask(__name__) # 建立乙個服務,把當前這個python檔案當做乙個服務
@server.route('/data')
def data(): # 返回data
data =
}return json.dumps(data, ensure_ascii=false)
@server.route('/data//info', methods=['post'])
def data_redirect(id):
return redirect(url_for('data', guest=id))
if __name__ == '__main__':
server.run(debug=true, port=5000, host='10.82.25.11') # 指定訪問埠、host
1.5 重新構建響應頭和響應狀態碼
有時在與第三方系統對接時,需要返回攜帶響應頭訊息和指定的響應狀態碼,在flask中也是可以構建自定義的響應訊息的
# -*- coding: utf-8 -*-執行該py檔案,在postman中傳送請求,檢視響應資訊,如下圖,變成的我們自定義設定的響應頭和狀態碼import flask,json
server = flask.flask(__name__) # 建立乙個服務,把當前這個python檔案當做乙個服務
@server.route('/data',methods=['post'])
def post_json():
if flask.request.is_json:
print(flask.request.json)
name = flask.request.json.get('name') # 獲取json請求體的第乙個引數的值
age = flask.request.json.get('age') # 獲取json請求體的第二個引數的值
data =
# 構建響應頭域和狀態碼
resp = flask.make_response(json.dumps(data, ensure_ascii=false))
resp.status = "666"
resp.headers[
"python"] = "python flask"
return resp
else:
return json.dumps(,ensure_ascii=false)
if __name__ == '__main__':
server.run(debug=true, port=5000, host='10.82.25.11') # 指定訪問埠、host
這樣我們就完全自定義了響應的頭和狀態碼
Python Flask介面開發
1.匯入 import flask,json 2.例項化 api flask.flask name 3.定義介面訪問路徑及訪問方式 api.route index methods get post put delete 4.定義函式,注意需與路徑的名稱一致,設定返回型別並支援中文 def index...
python Flask 擴充套件
flask有兩大核心 werkzeug和jinja2。werkzeug實現路由 除錯和web伺服器閘道器介面。jinja2實現了模板。flask框架是以werkzeug為基礎實現的。werkzeug是乙個遵循wsgi協議的python函式庫。其內部實現了很多web框架底層的東西,比如request和...
光模組介面
建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...