flask框架基本使用(2)(响应与重定向)
#轉載請留言聯系
flask 框架基本使用(1):https://www.cnblogs.com/chichung/p/9756935.html
1. flask 自定義返回狀態碼與響應頭
from flask import Flask,make_responseapp=Flask(__name__)@app.route("/") def index():#666是指定的狀態碼,name:chichung是添加到響應頭的鍵對return "<h1>我是大標題</h1>",666,{"name":"chichung"}if __name__ == '__main__':app.run()?
2. flask 返回json
json 是 js 里面默認的一種對象格式,是當今網絡普遍使用的一種數據傳輸格式,應用在不同的平臺或不同的編程語言直接進行數據的傳輸。
在開發中,經常遇到后端返回 json 給前端的情況。那么,用 flask 應該怎么返回 json 呢?
from flask import Flask,jsonifyapp = Flask(__name__)@app.route("/index_data") def index_data():respond_data = { #判斷json格式是否正確可以用搜索一下json格式化"name": "chichung","height": 177,"weight": 110.5}return jsonify(respond_data)if __name__ == '__main__':app.run()jsonify 方法可以把 respond_data 字典轉化為 json 的字符串(原理與 json.dump())相同,然后在進行返回給前端。
拓展:
在返回不同的數據時(例如圖片,js,css......),通常要指定響應頭,寫上返回的數據的類型。
# js
text/javascript
application/javascript
# css
text/css
# html
text/html
# json
application/json
text/json
# png,gif,jpg/jpeg
image/png
image/gif
image/jpeg
image/jpg
?
3. flask 實現網頁的重定向響應
重定向響應是什么呢?舉個栗子說明。京東以前的域名是www.360buy.com,而現在改為了www.jd.com。但是你訪問360buy.com的時候,會自動跳轉到jd.com。假設你是京東的web開發,你要實現這個功能,你會怎么做呢?
from flask import Flask,redirectapp=Flask(__name__)@app.route("/") def index():return redirect("http://www.jd.com")if __name__ == '__main__':app.run()還有一種情況,你打開淘寶,點進“我的淘寶”,跳出了讓你登錄的窗口。這是怎么實現的呢?
from flask import Flask,redirect,url_forapp=Flask(__name__)@app.route("/center") def center():#如果還沒登錄自動跳轉到登錄界面url = url_for("login") #url_for的作用是根據視圖函數的名稱來自動生成對應的url地址return redirect(url)@app.route("/login") def login():return "請登錄"if __name__ == '__main__':app.run()進行頁面跳轉的編寫時,一般不要固定跳轉的 url 地址,而是采用 url_for 函數來生成對應的 url 地址。因為有些公司會定期更改一下 url ,但是視圖函數的名字一直都是固定的。
拓展:
3xx統一都是表示頁面重定向。
301 永久重定向
302 臨時重定向
轉載于:https://www.cnblogs.com/chichung/p/9761610.html
總結
以上是生活随笔為你收集整理的flask框架基本使用(2)(响应与重定向)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 各种推导式合集
- 下一篇: Leetcode 456. 132 Pa