摘要:只知道對字符串和二進制類型進行處理響應,其他位置類型比如字典都通過函數(shù)進行處理,我們定義的如果返回的是類型那么用的函數(shù)轉換成內(nèi)容類型。
flask jsonify()函數(shù)返回json響應
app = Flask(__name__) @app.route("/json/") def index(name): return jsonify({"Hello":name})
這時候content-Type=application/json
如果用python的json.dumps()函數(shù)
@app.route("/dumps/") def py(name): return json.dumps({"Hello":name})
這時候content-Type=text/html; charset=utf-8。如果選擇響應的格式的話,return json.dumps({"Hello":name}),{"Content-Type":"application/json"} 那么content-Type=application/json就會響應json格式
flask Response響應類實際上來自Werzeug中的Response類,它繼承的是python的BaseResponse類
我們可以自定義響應
>>> from flask import Flask >>> app = Flask(__name__) >>> app.make_response(("Hello word
",201))
make_response接收一個參數(shù),返回信息和狀態(tài)碼都在一個元組里
Response類定義:
class Response: charset = "utf-8" default_status = 200 default_mimetype = "text/html" def __init__(self, response=None, status=None, headers=None, mimetype=None, content_type=None, direct_passthrough=False): pass @classmethod def force_type(cls, response, environ=None): pass
我們可以自定義Response的子類,對他的行為做出一些改變,Flask類的response_class屬性可以改變響應類。
from falsk import FLask, Response calss MyResponse(Response): default_mimetype = "application/xml" #修改內(nèi)容類型 class Myfalsk(Flask): response_class = Myresponse @app.route("/") def index(): return """""" 如果想要其他的內(nèi)容類型,可以設置Content-Type的值: return "{"name":"yang"}",{"Content-Type"="application/json"} Yang
重寫Response類來過濾Json格式的內(nèi)容格式:
class Myresponse(Response): @classmethod def force_type(cls, response, environ=None): if isinstance(response, dict): response = jsonify(response) return super().force(response, environ)
重寫forec_type來自定義對未知返回對象的處理。falsk只知道對字符串和二進制類型進行處理響應,其他位置類型比如字典都通過forec_type函數(shù)進行處理,我們定義的如果返回的是dict類型那么用flask的jsonify函數(shù)轉換成json內(nèi)容類型。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://www.ezyhdfw.cn/yun/43663.html
摘要:在使用自定義響應類的應用中,和無法知道自定義類的細節(jié),所以它們使用標準響應類來創(chuàng)建響應。有了這個自定義響應類,任何滿足格式要求的文檔都會自動被標記為內(nèi)容類型,而其他響應則會繼續(xù)獲得默認的內(nèi)容類型。 譯文鏈接:編程派 原文鏈接:Flask Web Development作者的博客 有翻譯或理解不對的地方,望大家指正! Flask框架中的響應類,命名很貼切,叫Response。不過...
摘要:本文就主要針對一個應用的運行過程進行簡要分析,后續(xù)文章還會對框架的一些具體問題進行分析。所有的請求處理過程,都會在這個上下文對象中進行。和一些全局變量注意當進入這個上下文對象時,會觸發(fā)。 相信很多初學Flask的同學(包括我自己),在閱讀官方文檔或者Flask的學習資料時,對于它的認識是從以下的一段代碼開始的: from flask import Flask app = Flask(...
摘要:我們知道響應分為三個部分狀態(tài)欄版本狀態(tài)碼和說明頭部以冒號隔開的字符對,用于各種控制和協(xié)商服務端返回的數(shù)據(jù)。 這是 flask 源碼解析系列文章的其中一篇,本系列所有文章列表: flask 源碼解析:簡介 flask 源碼解析:應用啟動流程 flask 源碼解析:路由 flask 源碼解析:上下文 flask 源碼解析:請求 flask 源碼解析:響應 response 簡介 在 f...
摘要:官方示例第一行類對象,這個無需解釋。請求對象的端點請求視圖函數(shù)的參數(shù)通過源碼的注釋我們可以知道,都只是對庫的進行了一層包裝并加入一些屬性。接下來會有更多關于和相關文章放出來,敬請期待參考文檔項目源碼版本注釋版 Flask 是一個 Python 實現(xiàn)的 Web 開發(fā)微框架, 有豐富的生態(tài)資源。本文從一段官方的示例代碼通過一步步打斷點方式解釋 Flask 內(nèi)部的運行機制,在一些關鍵概念會...
摘要:最經(jīng)典的就是了暫時性重定向的狀態(tài)碼是,表示頁面暫時性被跳轉,比如訪問一個需要權限的網(wǎng)址,如果當前用戶沒有登錄,應該重定向到登錄頁面。作為額外的消息頭如果以上的條件都不滿足,會假設返回值是一個合法的應用程序,并通過轉換成一個請求對象。 flask基礎之一 hello world #從flask這個包中導入Flask這個類 #Flask這個類是項目的核心,以后的很多操作都是基于這個類的對象...
閱讀 2908·2023-04-25 20:06
閱讀 1531·2021-08-26 14:15
閱讀 2294·2021-08-12 13:27
閱讀 1841·2019-08-30 15:55
閱讀 3528·2019-08-30 13:20
閱讀 2890·2019-08-29 15:12
閱讀 3387·2019-08-29 15:06
閱讀 2923·2019-08-29 14:13