理解
安裝 flask restful
1.cmd輸入:pip install flask,安裝flask
2.cmd輸入:pip install flask-restful,安裝flask-restful
安裝過程中會出現如下報錯:
you are using pip version 9.0.1, however version 19.2.3 is **ailable. you should consider upgrading via the 'python -m pip install --upgrade pip' comm and.
解決方法
升級pip python -m pip install --upgrade pip
注意:某些flask版本下,引入模組時採用from flask.ext.restful import api出錯,則可以使用from flask_restful import api
官網教程
例證restful.py 內容:
#!/usr/bin/python3
# encoding:utf-8
from flask import flask,request
from flask_restful import reqparse, abort, api, resource
#初始化app、api
app = flask(__name__)
api = api(app)
lists = [
, , ]
# /lists/(url引數),判斷輸入的引數值列表lists下標越界,越界則退出
def abort_if_list_doesnt_exist(list_id):
try:
lists[list_id]
except indexerror:
abort(404, message="輸入的值,不在範圍內")
'''add_argument('per_page', type=int, location='args') str
add_argument中通過指定引數名、引數型別、引數獲取方式來獲取引數物件並支援做合法性校驗
第一個引數是需要獲取的引數的名稱
引數type: 引數指的型別, 如果引數中可能包含中文需要使用six.text_type. 或直接不指定type
引數location: 獲取引數的方式,可選的有args(url中獲取)、json(json型別的)、form(表單方式提交)
引數required:是否必要,預設非必要提供 required=true(必須)
引數help:針對必要的引數,如果請求時沒有提供,則會返回help中相應的資訊
'''parser = reqparse.requestparser()
#入參parameter,location='json'表示為入參為json格式
parser.add_argument('parameter',location='json')
# 路由類,函式get、post、put、delete等實現http請求方法
# url不帶入參 /lists
class c_dictlist(resource):
#型別get,根據列表lists,處理,返回一個新的列表r_lists
def get(self):
r_lists =
for listv in lists:
if listv:
new_list = {}
#lists列表存的是字典,遍歷時為字典listv['parameter'],可獲取字典值
new_list['parameter'] = listv['parameter']
#lists為列表,index可以查出對應下標值
new_list['url'] = 'url/'+ str(lists.index(listv))
#lists列表中新增字典
r_lists.append(new_list)
return r_lists
#型別post,在列表lists後新增一個值,並返回列表值
def post(self):
args = parser.parse_args()
list_id = len(lists)
#args['parameter'],入參
lists.append()
return lists, 201
# 路由類,函式get、post、put、delete等實現http請求方法
# url帶入參 /lists/
class c_dict(resource):
#根據輸入url入參值作為lists的下標,返回該值
def get(self, list_id):
url_int = int(list_id)
abort_if_list_doesnt_exist(url_int)
return lists[url_int]
#根據輸入url入參值作為lists的下標,修改該值,並返回列表值
def put(self, list_id):
url_int = int(list_id)
args = parser.parse_args()
#args['parameter'],入參
parameter =
lists[url_int] = parameter
return lists, 201
#根據輸入url入參值作為lists的下標,刪除該值
def delete(self, list_id):
url_int = int(list_id)
abort_if_list_doesnt_exist(url_int)
del lists[url_int]
return '', 204
#設定資源路由api.add_resource(類名,url路徑)
#url,不帶入參,如:
api.add_resource(c_dictlist, 程式設計客棧'/lists')
#url,帶入參,為變數值,如:/1
api.add_resource(c_dict, '/lists/')
if __name__ == '__main__':
#不設定ip、埠,預設:
#app.run(debug=true)
#設定ip、埠
app.run(host="127.0.0.1", port=8891,debug=true)
控制檯執行結果:
serving flask app "123" (lazy loading) * environment: production
warning: this is a development server. do not use it in a productiondeployment. use a production wsgi server instead. * debug mode: onrestarting with stat * debugger is active! * debugger pin: 279-443-943 * running on (press ctrl+c toquit)
postman呼叫結果
url不帶引數
getpost,有請求入參,格式為json,入參值追加到列表後面
url帶引數get,根據url入參值如下圖值=1,作為lists的下標,獲取列表值
put ,根據url入參值如下圖值pkfljcnbar=1,作為lists的下標,修改該列表值為請求入參值,登入改為訂單
put ,根據url入參值如下圖值=2,作為lists的下標,刪除該值,成功返回狀態204
本文標題: python restful框架介面開發實現
本文地址: /jiaoben/python/307181.html
MVC框架 MVVM框架
1 mvc定義 mvc是一個設計模式,它強制性的使應用程式的輸入 處理和輸出分開。mvc應用程式被分成三個核心部件 模型 檢視 控制器,它們各自處理自己的任務。mvc過程如下 使用者操作 view 負責接受使用者的輸入操作 controller 業務邏輯處理 model 資料持久化 view 將結果...
Python mini框架 給框架新增路由功能
框架的回顧 路由器回顧 資料發給路由器,路由器 給其他網路,實現連線不同網路 請求資料發給框架,框架根據請求型別呼叫不同的處理函式 框架新增路由 新增路由的用途 根據請求不同,自動呼叫不同的功能 功能選擇處利用字典實現 手動新增字典 加裝飾器 自動新增字典 流程 import re url func...
abp框架 mysql ABP框架遷移到Mysql
abp框架 netcore3.x版本 1.首先找到 core 專案,新增引用microsoft.entityframeworkcore.tools 2.找到 entityframeworkcore專案,將原有sqlserver的引用改為mysql引用 3.找到host專案中的配置檔案,將連線字串改為...
uikit框架 UIkit框架的口哨之旅
uikit框架 雖然bootstrap和foundation可能是web設計人員中最流行的兩個前端框架,但在本文中,我將向您介紹uikit的功能,uikit是一個輕量級的模組化前端框架,幾乎所有我都使用了它。專案。注意 本文假定您熟悉前端框架的工作方式。同樣,本文的主要目標不是涵蓋該框架的各個部分 ...
框架學習 Nancy 框架
nancy 框架 1 是一個輕量級用於構建http相應的web框架 2 與mvc類似,有自己的路由機制 3 可以處理 delete get head options post put 和 patch等請求 4 完美支援owin 可以說他就是為owin而生的 部落格介紹 tinyfox 是一款支援ow...
父框架與子框架呼叫
1.ifr id document.getelementbyid ifr 取到的是dom結果,主要用於操作屬性property,改變height,width之類 2.ifr window window.frames ifr 取到的是文件結果,可以取到文件的內容,如ifr window.documen...
icePHP框架使用文件 框架核心功能
說明 框架核心主要執行一些系統性工作 並未為開發人員提供太多功能 開發人員可以使用以下靜態方法 sframe requireinsensitive filename 不區分大小寫的查詢檔案幷包含 路徑區分大小寫,檔名不區分 sframe getmodule 獲取模組名稱 sframe getcont...
HTML框架與內聯框架
在學習這一節之前經常聽說這個框架這個詞,只知道有這個東西,不知道是什麼意思,今天就來分享一下關於html中的框架的理解,內容不一定多,等以後學到了更多的知識再來進行分享。1.什麼是html框架 這個地方要注意的是,我說的是html框架,而不是那些比較複雜的web框架,由於是新手入門,就從最簡單的學起...
zDialog框架框架入門教程
zdialog是一款彈窗框架,具備簡便外觀漂亮的優點,所以經常被專案應用 好的,然後這些是來自其它部落格歸納的優點和主要引數說明 zdialog框架優點 代替window.open window.alert window.confirm 提供良好的使用者體驗 水晶質感,設計細膩,外觀漂亮 相容ie6...
NodeJS框架學習 Egg框架
注 nodejs版本最低要求 8.x,且需要lts 版本 egg官方文件 生成專案 1.npm i egg init g 開啟cmd,輸入npm i egg init g 只需要安裝一次即可 2.egg init egg example type 先cd到你需要建立專案的目錄下,如 然後輸入egg ...