第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

處理 Flask 路由中的所有異常

處理 Flask 路由中的所有異常

三國紛爭 2021-09-11 20:39:27
我的 Flask 應用程序中有一條簡單的路線:@app.route('/', methods=['GET'])def homepage():    return '{}'.format(1 / 0)當用戶訪問 site.com/ 時,她應該看到 1/0 的結果。當然這是不可能的,所以 Python 給了我一個錯誤?,F(xiàn)在,我希望以特殊方式處理所有端點上的所有錯誤:我希望它們返回 JSON 響應,例如:{    'status_code': 500,    'status': 'Internal Server Error'}我寫了一個裝飾器來做到這一點:def return_500_if_errors(f):    def wrapper(*args, **kwargs):        try:            return f(*args, **kwargs)        except:            response = {                'status_code': 500,                'status': 'Internal Server Error'            }            return flask.jsonify(response), 500    return wrapper然后我將裝飾器添加到端點:@return_500_if_errors@app.route('/', methods=['GET'])def homepage():    return '{}'.format.(1 / 0)但是,裝飾器似乎沒有效果。
查看完整描述

3 回答

?
POPMUISE

TA貢獻1765條經(jīng)驗 獲得超5個贊

問題出在裝飾器順序上。


這確實有效:


def return_500_if_errors(f):

    def wrapper(*args, **kwargs):

        try:

            return f(*args, **kwargs)

        except:

            response = {

                'status_code': 500,

                'status': 'Internal Server Error'

            }

            return flask.jsonify(response), 500

    return wrapper


@app.route('/', methods=['GET'])

@return_500_if_errors

def homepage():

    return '{}'.format.(1 / 0)

但有些不同,因為要捕獲和返回錯誤本身 - 而不是標準化的 JSON。


查看完整回答
反對 回復 2021-09-11
?
斯蒂芬大帝

TA貢獻1827條經(jīng)驗 獲得超8個贊

這是你需要的:


from flask import Flask, jsonify

from functools import wraps


app = Flask(__name__)


def catch_custom_exception(func):

    @wraps(func)

    def decorated_function(*args, **kwargs):

        try:

            return func(*args, **kwargs)

        except Exception as e:

            return str(e), 500

    return decorated_function


@app.route('/', methods=['GET'])

@catch_custom_exception

def homepage():

    return '{}'.format(1 / 0)


@app.route('/2', methods=['GET'])

def homepage2():

    return '{}'.format(1 / 0)


查看完整回答
反對 回復 2021-09-11
  • 3 回答
  • 0 關注
  • 223 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號