Python基於Flask開發Restful API實踐
看過此部落格,你將會發現,Python基於Flask開發Restful API,超級簡單(本人用力2個多小時搞定此部落格)。
Flask是一個使用 Python 編寫的輕量級 Web 應用框架。其 WSGI 工具箱採用 Werkzeug,Python Web伺服器閘道器介面(Python Web Server Gateway Interface,縮寫為WSGI)是Python應用程式或框架和Web伺服器之間的一種介面,已經被廣泛接受, 它已基本達成它的可移植性方面的目標。WSGI 工具包,它可以作為一個 Web 框架的底層庫,因為它封裝好了很多 Web 框架的東西,例如 Request,Response 等等。
Flask官網地址為:http://flask.pocoo.org/。Python直接使用pip install命令就可以安裝到Python整合環境中。
D:\Python\Python36>pip install flask
Collecting flask
Downloading https://files.pythonhosted.org/packages/7f/e7/08578774ed4536d3242b14dacb4696386634607af824ea997202cd0edb4b/Flask-1.0.2-py2.py3-none-any.whl (91kB)
100% |████████████████████████████████| 92 kB 88kB/s
Collecting click>=5.1 (from flask)
Downloading https://files.pythonhosted.org/packages/34/c1/8806f99713ddb993c5366c362b2f908f18269f8d792aff1abfd700775a77/click-6.7-py2.py3-none-any.whl (71kB)
100% |████████████████████████████████| 71kB 123kB/s
Collecting Werkzeug>=0.14 (from flask)
Downloading https ://files.pythonhosted.org/packages/20/c4/12e3e56473e52375aa29c4764e70d1b8f3efa6682bef8d0aae04fe335243/Werkzeug-0.14.1-py2.py3-none-any.whl (322kB)
100% |████████████████████████████████| 327kB 75kB/s
Collecting itsdangerous>=0.24 (from flask)
Downloading https://files.pythonhosted.org/packages/dc/b4/a60bcdba945c00f6d608d8975131ab3f25b22f2bcfe1dab221165194b2d4/itsdangerous-0.24.tar.gz (46kB)
100% |████████████████████████████████| 51kB 67kB/s
Collecting Jinja2>=2.10 (from flask)
Downloading https://files.pythonhosted.org/packages/7f/ff/ae64bacdfc95f27a016a7bed8e8686763ba4d277a78ca76f32659220a731/Jinja2-2.10-py2.py3-none-any.whl (126kB)
100% |████████████████████████████████| 133kB 41kB/s
Collecting MarkupSafe>=0.23 (from Jinja2>=2.10->flask)
Downloading https://files.pythonhosted.org/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/MarkupSafe-1.0.tar.gz
Installing collected packages: click, Werkzeug, itsdangerous, MarkupSafe, Jinja2, flask
Running setup.py install for itsdangerous ... done
Running setup.py install for MarkupSafe ... done
Successfully installed Jinja2-2.10 MarkupSafe-1.0 Werkzeug-0.14.1 click-6.7 flask-1.0.2 itsdangerous-0.24
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
首先,我們先快速構建個Web服務,開啟一個Python檔案,輸入下面的內容並執行該檔案。然後訪問localhost:5000,我們應當可以看到瀏覽器上輸出了Hello Flask!。
基於Eclipse開發環境,新建TestFlaskHello.py檔案,貼上Flask官網主頁中的示例程式碼。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello Flask!'
if __name__ == '__main__':
app.run()
在瀏覽器中輸入http://localhost:5000/
,將會出現如下結果。
第一個Restful API,如此簡單,詳見示例程式碼:
from flask import Flask, jsonify
app = Flask(__name__)
tasks = [
{
'id': 1,
'title': u'Buy groceries',
'description': u'Milk, Cheese, Pizza, Fruit, Tylenol',
'done': False
},
{
'id': 2,
'title': u'Learn Python',
'description': u'Need to find a good Python tutorial on the web',
'done': False
}
]
@app.route('/todo/api/v1.0/tasks', methods=['GET'])
def get_tasks():
return jsonify({'tasks': tasks})
if __name__ == '__main__':
app.run(debug=True)
執行結果如下:
我們現在擁有一個 get_tasks 的函式,訪問的 URI 為 /todo/api/v1.0/tasks,並且只允許 GET 的 HTTP 方法。
這個函式的響應不是文字,我們使用 JSON 資料格式來響應,Flask 的 jsonify 函式從我們的資料結構中生成。
使用Postman的Chrome外掛,測試Rest API,效果如下:
總結本文內容:
(1)通過pip install flask命令安裝Flask;
(2)基於Eclipse(老Java開發人員的愛好),按Flask官網示例,實踐第一個Web應用-Helloworld;
(3)實踐第一個Restful API,URI 為 /todo/api/v1.0/tasks;
(4)使用Postman外掛,測試Rest API。
是不是很簡單,不妨試一試。
附:Postman外掛的安裝。選擇Chrome應用商店中的“Tabbed Postman - REST Client”擴充套件程式,新增到Chrome上。
參考:
相關推薦
Python基於Flask開發Restful API實踐
看過此部落格,你將會發現,Python基於Flask開發Restful API,超級簡單(本人用力2個多小時搞定此部落格)。 Flask是一個使用 Python 編寫的輕量級 Web 應用框架。其 WSGI 工具箱採用 Werkzeug,Python
Python使用Flask搭建RESTful API
使用 Python 和 Flask 實現 RESTful services 使用 Flask 構建 web services 是十分簡單地,比我在 Mega-Tutorial 中構建的完整的服務端的應用程式要簡單地多。 在 Flask 中有許多擴充套件來幫助我們構建 RESTful services,
基於dubbo的分散式專案框架搭建 開發工具idea (springboot+dubbo+zookeeper+redis+rabbitmq+基於Swagger2的restful api) --(二)
1.dubbo-admin 2.5.8的安裝 http://dubbo.apache.org/en-us/index.html 點選GITHUB 跳轉到github下載dubbo原始碼 點選Branch切換到Tags,找到對應的2.5.8版本,下載該版本,下載解壓完以後
基於dubbo的分散式專案框架搭建 開發工具idea (springboot+dubbo+zookeeper+redis+rabbitmq+基於Swagger2的restful api) --(一)
1. spring-boot web框架下載配置 https://start.spring.io/ 點選Switch to the full version 勾選詳細的配置 根據需要更改group atrifact...等資訊 &nb
基於dubbo的分散式專案框架搭建 開發工具idea (springboot+dubbo+zookeeper+redis+rabbitmq+基於Swagger2的restful api) --(四)
1.rabbitmq的整合 首先在配置檔案裡增加 #rabbitMQ spring.rabbitmq.host=127.0.0.1 spring.rabbitmq.port=5672 spring.rabbitmq.username=root spring.rabbitmq.password
基於dubbo的分散式專案框架搭建 開發工具idea (springboot+dubbo+zookeeper+redis+rabbitmq+基於Swagger2的restful api) --(三)
1.dubbo註冊中心zookeeper 的安裝 http://mirrors.shu.edu.cn/apache/zookeeper/ 選擇對應的版本下載即可 修改zoo_sample.cfg為zoo.cfg(可以先備份一份) 在安裝目錄新建data和log目錄 修改zo
Flask框架開發RESTful API
web框架選擇 Django,流行但是笨重,還麻煩,人生苦短,肯定不選 web.py,輕量,但據說作者仙逝無人維護,好吧,先pass tornado,據說倡導自己造輪子,雖然是facebook開源的吧,但聽到這個,就算了吧 flask,輕量,流行,可以自己定義 安裝flask
使用flask開發RESTful架構的api伺服器端(5)–部署flask應用到nginx
nginx:一個高效能的http和反向代理伺服器,在高併發方面有良好的表現; wsgi:全稱是web server gateway interface,它是伺服器程式和應用程式之間的一個約定,它規定了兩者各實現什麼功能,以便它們能夠配合使用,作為中介軟體粘合伺服器程式和應用程式; gunicorn:一個開源
使用flask開發RESTful架構的api伺服器端(3)–簡單的RESTful services
學生資訊資源為: 資源名稱 資源型別 學生號 int 姓名 str 年齡 int 籍貫 str 平均分 float 第一步先將資料儲存在記憶體中,使用資料庫進行資訊儲存在之後章節再繼續介紹; 1、建立flask伺服器 首先與第二章的用例相同建立一個flask的伺服器:
使用flask開發RESTful架構的api伺服器端(2)–flask的安裝和使用
flask是一個純python的web應用框架,使用python安裝工具pip可以很方便的進行安裝,如果開發環境中已經有了pip工具,那麼可以迅速的安裝完flask,如果沒有最好去安裝一下,事先做好準備將來安裝其它python工具時都會節省下大量的時間,關於pip的安裝方法這裡就不介紹了,百度裡有非常多的介
使用flask開發RESTful架構的api伺服器端(4)–flask操作資料庫
flask有一個對資料庫的擴充套件flask-sqlalchemy,它簡化了在flask中對sqlalchemy的操作,sqlalchemy是一個強大的關係資料庫框架,支援一些資料庫後端,提供高階的ORM和底層訪問資料庫的本地sql功能; 使用pip來安裝flask-sqlalchemy
使用flask開發RESTful架構的api伺服器端(1)–什麼是RESTful和為什麼選擇flask
一、什麼是RESTful 最近需要開發一個使用RESTful架構的後臺api程式,什麼叫RESTful呢,REST的全稱是representational state transfer表徵狀態轉移,但其實這個全稱也不夠完整,它還缺少了主語,什麼的表徵狀態轉移呢,資源(resources)的; 資源(reso
使用flask開發RESTful架構的api伺服器端–部署flask應用到nginx
原文地址:http://www.mrhaoting.com/?p=199 通過前幾章的介紹,大概瞭解了怎樣利用flask框架來開發服務端後端,但flask只是一個web框架,提供使用者便捷的開發方式,它並不是一個真正的web伺服器程式,想要這個服務端應用能夠支援高併發、
flask開發RESTful架構的api–部署到nginx
本文僅介紹怎麼將flask 開發的 restful api部署到Nginx 環境配置:python2.7 + linux 安裝gunicorn: pip install gunicorn 安裝nginx::參考http://www.runoob.com
Python 基於Flask的Web開發【1】【用戶登錄 註冊】
html 追蹤 filter 數據庫對象 建數據庫 ali src 密碼錯誤 需要 實現目標 基於Flask實現用戶的登錄/註冊。 設計思路 前端1.編寫登錄和註冊表單2.編寫視圖函數3.編寫相應的html文件4.頁面測試 後臺1.創建數據庫2.修改配置文件3.編寫數據
基於flask開發web微信
window 自己 網頁 time dal -s 最近聯系人 bin in use 流程 階段一 目標:基於falsk編寫登錄頁面,獲取二維碼 解析:1:、二維碼圖片地址有個後綴字符串 2、圖片生成之前,先獲取到隨機字符串再生成二維碼 3、二維碼的圖片的來源
使用Spring MVC開發RESTful API(續)
描述 多線程 用戶 接收http esp 訂單號 開始 邏輯 配置 使用多線程提高REST服務性能 異步處理REST服務,提高服務器吞吐量 使用Runnable異步處理Rest服務 AsyncController.java @RestController @GetMapp
003 使用SpringMVC開發restful API
默認 nta status n) ota family match 成熟度 effective 一:介紹說明 1.介紹 2.restful api的成熟度 二:編寫Restful API的測試用例 1.引入spring的測試框架 在effective
005 使用SpringMVC開發restful API二--處理創建請求
ast matcher .post div null expec .json eat exce 一:主要任務 1.說明 @RequestBody 映射請求體到java方法的參數 日期類型參數的處理 @Valid註解 BindingResult驗證請求參數的合
006 使用SpringMVC開發restful API四--用戶信息的修復與刪除,重在註解的定義
自定義返回 ble work utf 一個 提示信息 groups java str 一:任務 1.任務 常用的驗證註解 自定義返回消息 自定義校驗註解 二:Hibernate Validator 1.常見的校驗註解 2.程序 測試類