Flask中的一些問題的初步彙總二
阿新 • • 發佈:2018-12-26
對於初學Flask的朋友們來說,怎麼去建立路由,指定路徑,可能會有一些疑惑。我直接上程式碼了。註釋裡會提到對應的方法,及注意事項。
啟動Flask。在命令視窗輸入專案路徑,找到之後,執行命令 python 檔名.py
列舉如下資料,如果有說明服務執行正常
* Debug mode: on
* Restarting with stat
* Debugger is active!
* Debugger PIN: 240-758-350
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
# -*- encoding: utf-8 -*- # 導包, 匯入重定向功能,匯入站內跳轉包, jsonify強轉為json格式 from flask import Flask, redirect, url_for, jsonify # 建立flask物件 # 我們把所有的配置放在一起 app = Flask(__name__) # 從外部引入配置檔案,用於載入 app.config.from_pyfile('config.ini') # 使用flask路由器。指定網址和控制器 @app.route('/') def index(): return "hello world" # 給網址增加引數功能,使用<變數名稱>,路由方法要和路由定義的引數同步 # 路由器可以傳引數,也可以傳多個引數 @app.route('/hello/<id>/<name>') def hello(id, name): print(id, name) # 在服務上列印傳進去的引數 return "hello,你的引數是%s, %s" % (id, name) # 使用重定向模組來進行跳轉(短網址跳轉) 跳轉到其他頁面。方便用與很長的網址跳轉 @app.route('/one') def reulr(): # return redirect('http://192.168.1.238/') # 跳轉到哪個網站 # return redirect('http://www.baidu.com/') # 跳轉到任意的網站 return redirect('http://localhost:5000/') # 跳轉到本站 # 使用url_for方法來跳轉本站簡易的跳轉,引數指定路由方法名稱 @app.route('/two') def reurl_in(): return redirect(url_for('index')) # 跳轉到定義的方法。 # 使用jsonify模組來讓網頁直接顯示json資料 # 實際是介面開發 被訪問是get 或者是 post 的倆種接收方式 # 以json吐資料 # @app.route('/json', methods=['GRT','POST']) # 可以只留post方式 @app.route('/json', methods=['POST']) # 可以只留post方式,那麼就會走下邊的errorhandler方法 def re_json(): json_dict = {'id':10, 'title':'flask的應用','content':'flask的json格式化'} # 使用jsonify來將定義好的資料轉換為json格式,並且返回給前端 return jsonify(json_dict) # Flask統一對狀態碼捕獲異常 @app.errorhandler(405) def internal_server_error(e): return '這個介面不能被get請求到。只能傳送Post請求' # 捕獲404的異常。 @app.errorhandler(404) def internal_server_error_one(e): return '網頁不存在或者已經刪除' # 在第一次請求之前呼叫(不管是誰,啟動服務的第一次,第一次訪問) 前置訪問,鉤子 @app.before_first_request def before_first_request(): print('這是第一次請求之前呼叫的方法(before_first_request)') # 優先順序更高 # 在每一次請求之前呼叫, @app.before_request # 只要想請求, def before_request(): print('每一次請求之前,呼叫這個(before_request)方法') # 每重新整理一次呼叫一次本方法 # 後置訪問,記錄行為,儲存。方便資料分析 # 在請求之後呼叫的方法,必須傳響應引數,然後將響應內容返回。固定格式,和前置操作的區別 @app.after_request def after_request(response): # 有請求就有響應 print('在請求之後,呼叫這個(after_request)方法') return response # 記錄錯誤的方法 網路環境差,丟包。出的錯誤儲存到log日誌 # 在請求之後。呼叫伺服器出現的錯誤資訊 @app.teardown_request def teardown_request(e): # Error伺服器出現的錯誤資訊 print('列印伺服器出現的錯誤資訊呼叫(teardown_requset)方法。錯誤的資訊是: %s' % str(e)) # 使用程式入口,將flask應用啟動 if __name__ == "__main__": # 專案上線改為False # port用來調整埠號。預設的是5000 # app.run(debug=True) # debug=true 不用來回停止服務。自動重新整理更改的內容 app.run()
不喜輕噴~