Flask Restful Small Demo

来源:http://www.cnblogs.com/leizhizhiyuyali/archive/2016/08/06/5743453.html
-Advertisement-
Play Games

參考: http://www.pythondoc.com/flask-restful/first.html 什麼是Rest Client-Server:伺服器端與客戶端分離。 Stateless(無狀態):每次客戶端請求必需包含完整的信息,換句話說,每一次請求都是獨立的。 Cacheable(可緩存 ...


參考:

http://www.pythondoc.com/flask-restful/first.html

什麼是Rest

  • Client-Server:伺服器端與客戶端分離。
  • Stateless(無狀態):每次客戶端請求必需包含完整的信息,換句話說,每一次請求都是獨立的。
  • Cacheable(可緩存):伺服器端必需指定哪些請求是可以緩存的。
  • Layered System(分層結構):伺服器端與客戶端通訊必需標準化,伺服器的變更並不會影響客戶端。
  • Uniform Interface(統一介面):客戶端與伺服器端的通訊方法必需是統一的。
  • Code on demand(按需執行代碼?):伺服器端可以在上下文中執行代碼或者腳本?
 
GET 
獲取資源的信息
POST
創建新資源  
PUT 
更新資源
DELETE
刪除資源 

那麼先用flask 建立一個小小的Demo,假使你已經安裝了flask   window –cmd- pip install flask

from flask import Flask

app=Flask(__name__)

@app.route("/")

def index():
    return "hello everybody"
    
if __name__=='__main__':
    app.run(debug=True)

在CMD命令中輸入  python test1.py

會彈出 http://127.0.0.1:5000 。在瀏覽器中輸入即可,這是一個簡單的flask  應用就訪問成功。

先用flask 建立一個小服務,首先是get方法獲取

這裡的資料庫暫時不用,直接用Python的列表就行數據的增刪改查

GET查詢

# -*- coding: utf-8 -*-
from flask import Flask,jsonify

app=Flask(__name__)

persons=[{'id':1,'name':'張三','address':'河南省'},{'id':2,'name':'李斯','address':'湖北省'}]

@app.route('/api/list/personss',methods=['GET'])

def Get_tasks():
    results=jsonify({'person':persons})
    return results
    
if __name__=='__main__':
    app.run(debug=True)

稍微用了一個JSON序列化

通過ID獲取某一列數據

# -*- coding: utf-8 -*-
from flask import Flask,jsonify
app=Flask(__name__)
@app.route('/api/list/person/<int:ids>',methods=['get'])
def get_tasks_id(ids):
    return 'st'
if __name__=='__main__':
    app.run(debug=True)

再通過POST方法進行提交數據

from flask import request

@app.route('/todo/api/v1.0/tasks', methods=['POST'])
def create_task():
    if not request.json or not 'title' in request.json:
        abort(400)
    task = {
        'id': tasks[-1]['id'] + 1,
        'title': request.json['title'],
        'description': request.json.get('description', ""),
        'done': False
    }
    tasks.append(task)
    return jsonify({'task': task}), 201

然後我卻使用了 Flask 的視圖函數來定義所有的路由。當然這也行,但是總感覺不是 那麼一回事。

Resource 基礎類是flask提供的。

好累。再敘。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這次主要實現管理後臺界面用戶資料的修改和刪除,修改用戶資料和角色是經常用到的功能,但刪除用戶的情況比較少,為了功能的完整性還是坐上了。主要用到兩個action “Modify”和“Delete”。 目錄 MVC5網站開發之一 總體概述 MVC5 網站開發之二 創建項目 MVC5 網站開發之三 數據存 ...
  • 對Web API新手來說,不要忽略了ApiController 在web API中,方法的返回值如果是實體的話實際上是自動返回JSON數據的例如: 他的返回值就是這樣的: 這是定義的Response類 在web API還有一個問題,可能是我自己太大意了,新建的控制器如果沒有仔細看就會預設選擇了MVC ...
  • 一、什麼是VSTO? VSTO = Visual Studo Tools for Office,是.net平臺下的Office開發技術。相對於傳統的VBA(Visual Basic Application)開發,VSTO為中高級開發人員提供了更加強大的開發平臺和語言,並部分解決了傳統Office開發 ...
  • 為什麼要創造Taurus.MVC:記得被上一家公司忽悠去負責公司電商平臺的時候,情況是這樣的:項目原版是外包給第三方的,使用:WebForm+NHibernate,代碼不堪入目,Bug無限,經常點著點著就掛了。一開始招了幾個實習的大學生在那玩,搞不定了,終於忽悠的我了,哈哈。。。當時進去的第一感覺是... ...
  • public static void InsertWithLob(OracleConnection conn) { if (conn!= null && conn.State == ConnectionState.Open) { try { string sqlText = "insert into ...
  • Insert測試,只測試1000條的情況,多了在實際的項目中應該就要另行處理了。 using System; using System.Collections.Generic; using System.Configuration; using System.Data.Entity; using S ...
  • 相信每一個開發的框架都會有一個工具類,工具類的作用有很多,通常我會將最常用的方法放在工具類里 當然每個開發框架的工具類都會不同,這裡我只收錄了這些方法,希望有更多需求的小伙伴也可以收錄進工具類里 1.取得用戶IP 做Web開發的一定會遇到獲取用戶IP的需求的,無論是用來記錄登錄時間,還是日誌的記錄, ...
  • ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...