1. 程式人生 > >Flask中的一些問題的初步彙總二

Flask中的一些問題的初步彙總二

對於初學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()


不喜輕噴~