Firebase QUOTA_EXCEEDED Обработчик ошибок Flask - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь поймать в моем приложении Flask, ошибка квоты пожарной базы превысила код 429 согласно документации: https://firebase.google.com/docs/reference/fcm/rest/v1/ErrorCode

Я следовал Flask документация относительно обработки ошибок, но, похоже, многое дает как должное. К сожалению, это первый раз, когда я пытаюсь обработать ошибки в Flask без попытки / перехвата каждой функции ... http://flask.palletsprojects.com/en/1.1.x/errorhandling/

Что я хочу сделать, это перехватить ошибку и перенаправить пользователя на выделенную страницу с ошибкой, которая называется: «ExceededFirebaseQuota. html». Поэтому я также определил функцию handle для отображения моего шаблона следующим образом: c: https://flask.palletsprojects.com/en/1.1.x/quickstart/

Вот что я попробовал:

@app.route('/ExceededFirebaseQuota.html')
def handle_429(name=None):
    print('ERROR TRIGGERED 429')
    return render_template('ExceededFirebaseQuota.html',name=name)

class ExceededFirebaseQuota(werkzeug.exceptions.HTTPException):
    code = 429
    description = 'Exceeded Firebase Daily Quota.'
    handle_429()


app.register_error_handler(ExceededFirebaseQuota, handle_429)
raise ExceededFirebaseQuota()

Но я получаю:

Traceback (most recent call last):
  File "/home/fabio/Documents/Infant_Competition_Platform/main.py", line 525, in <module>
    class ExceededFirebaseQuota(werkzeug.exceptions.HTTPException):
  File "/home/fabio/Documents/Infant_Competition_Platform/main.py", line 528, in ExceededFirebaseQuota
    handle_429()
  File "/home/fabio/Documents/Infant_Competition_Platform/main.py", line 523, in handle_429
    return render_template('ExceededFirebaseQuota.html',name=name)
  File "/home/fabio/.local/lib/python3.6/site-packages/flask/templating.py", line 136, in render_template
    ctx.app.update_template_context(context)
AttributeError: 'NoneType' object has no attribute 'app'

Я уверен, что где-то есть ошибка ладьи ie, вы можете помочь мне разобраться?

...