Python flask模組介面開發學習總結

2022-03-17 14:51:23 字數 3757 閱讀 4602

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 -*-

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

然後執行該py檔案,則該檔案執行在本地就是乙個web服務,用瀏覽器或者postman嘗試訪問該服務的url即可

瀏覽器訪問:

postman發請求訪問:

瀏覽器或者postman請求完成後,在pycharm的輸出欄會輸出如下:

其它的請求如post、put、delete等方法,在methods引數中指明即可,不過post、put、delete等方法不能由瀏覽器直接訪問,因為瀏覽器預設訪問時是get方法,可以用postman按指定的方法發請求

1.2 獲取帶json格式請求體的介面

@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 =

return json.dumps(data,ensure_ascii=false)

else:

return json.dumps(,ensure_ascii=false)

使用postman作為客戶端傳送帶json請求體的請求,如下圖:

1.3 獲取get請求中傳送的引數

flask提供的方法是:

value = flask.request.args.get('name')           # 獲取get請求引數name的值
1.4 構建動態url以及響應體的重定向

很多時候,客戶端請求的url是變化的,也就是帶有動態引數的,flask也是可以輕鬆的構建提供動態引數的url資源服務並重定向響應體,**如下:

# -*- coding: utf-8 -*-

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

後面無論postman或者客戶端傳送的url中的id引數是啥,都可以響應

1.5 重新構建響應頭和響應狀態碼

有時在與第三方系統對接時,需要返回攜帶響應頭訊息和指定的響應狀態碼,在flask中也是可以構建自定義的響應訊息的

# -*- coding: utf-8 -*-

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

執行該py檔案,在postman中傳送請求,檢視響應資訊,如下圖,變成的我們自定義設定的響應頭和狀態碼

這樣我們就完全自定義了響應的頭和狀態碼

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...