服務器這種后台返回的數據只能是string,json或者是文件類型,對應Html的解析文件類型
無法返回自定義的元組,只能返回規定好的元組,說白了只第一個元素有效
所有返回前台的內容其實都應該是Response的對象或者其子類,我們看到如果返回的是字符串直接可以寫成return u'字符串內容'的形式,但是其實這個字符串也是經過了Response包裝的:return Response(u'字符串') 我們看一段代碼: # coding: utf-8 from flask import Flask, Response app = Flask(__name__) # type: Flask app.debug = True @app.route('/') def hello_world(): return 'Hello World!' @app.route('/login/') def login(): return Response(u'login') if __name__ == '__main__': app.run() 代碼里我新建了一個login函數,返回的就是用Response包裝后的字符串,訪問地址可以看到頁面打印了login。 我們有時候需要返回數組、字典之類的數據,但是數組或者字典這些數據是不能直接return的。這個時候怎么辦呢?答案就是你必須將數組或字典轉換成json后再返回(這就是為什么我們做接口測試的時候傳參前用json.loads()將字符串轉換成字典的原因了),因為json就是一個字符串。 數組或字典轉換成json的函數叫做jsonify,你需要先導入from flask import jsonify或者像船長下面代碼里寫的那樣,一下子導入好幾個庫: # coding: utf-8 from flask import Flask, Response, jsonify app = Flask(__name__) # type: Flask app.debug = True @app.route('/') def hello_world(): return 'Hello World!' @app.route('/login/') def login(): dict1 = {"name": "Warren"} return jsonify(dict1) if __name__ == '__main__': app.run() 上面代碼里`dict1`的數據類型是一個字典,我們通過`jsonify()`將其轉換成了`json`,就可以成功返回了,去頁面,看到: 除了字符串以外,還可以返回元組,但是返回元組是有要求的,元組內容包括三個參數:response、status_code、headers,其中: response指頁面打印信息,可以是字符串或Response對象 status_code指狀態碼,成功200,找不到頁面404等等 headers指信息頭 # coding: utf-8 from flask import Flask, Response, jsonify app = Flask(__name__) # type: Flask app.debug = True @app.route('/') def hello_world(): return 'Hello World!' @app.route('/login/') def login(): dict1 = {"name": "Warren"} return jsonify(dict1) @app.route('/set/') def myset(): return u'返回元組', 200, {"name": "Warren"} if __name__ == '__main__': app.run() 看上面代碼的myset函數,我return了一個元組(單個值的元組可以不寫括號,而且如果你加上括號,pycharm會有黃線提醒你remove redundant parentheless,意思就是去掉多余的括號)。
然后我們到頁面訪問/set/這個頁面,打開F12就是開發者工具,然后刷新頁面:

元組
demo.py(函數返回多個值(元組)): # 定義函數,有多個返回值(返回元組) def measure(): """測量溫度和濕度""" print("測量開始...") temp = 39 wetness = 50 print("測量結束...") # 元組-可以包含多個數據,因此可以使用元組讓函數一次返回多個值 # 如果函數返回的類型是元組,小括號可以省略 # return (temp, wetness) return temp, wetness # 小括號可以省略 # 元組 result = measure() print(result) # (39, 50) # 需要單獨的處理溫度或者濕度 - 不方便 print(result[0]) # 39 print(result[1]) # 50 # 如果函數返回的類型是元組,同時希望單獨的處理元組中的元素 # 可以使用多個變量,一次接收函數的返回結果 # 注意:使用多個變量接收結果時,變量的個數應該和元組中元素的個數保持一致 gl_temp, gl_wetness = measure() # 接受函數多個返回值 print(gl_temp) # 39 print(gl_wetness) # 50 demo.py(利用元組交換變量值): a = 6 b = 100 # 解法1:-使用其他變量 # c = a # a = b # b = c # 解法2:-不使用其他的變量 # a = a + b # b = a - b # a = a - b # 解法3:-Python 專有 # a, b = (b, a) # 提示:等號右邊是一個元組,只是把小括號省略了 a, b = b, a print(a) # 100 print(b) # 6 ———————————————— 版權聲明:本文為CSDN博主「houyanhua1」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接及本聲明。 原文鏈接:https://blog.csdn.net/houyanhua1/article/details/83999767