1. 程式人生 > >Python基於Flask開發Restful API實踐

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.程序   測試類