- 分享一個前後端分離(Python3 + Flask +Vuew)的個人博客,一個使用Python Flask 框架編寫的個人博客。項目很輕。卻很實用。
- GitHub地址:哆啦瞎夢
- 技術棧:Flask、Vue、Docker
- 初始化,項目結構我就不再寫了,之前寫過了,沒有的可以看我之前的文章。或者直接私信我,我特地準備了一個乾淨的模板
flask-restful 不做果斷解釋
# 在flask_app>restful_api_manage中創建一個base.py
from flask import request
from flask_restful import Resource
# 同一錯誤集中處理
from common.error import AppError, NotFoundError, UnauthorizedError, ValidationError, ParaValidateFailError, \
MoreValidationError, UnauthorizeError
# 統一方法返回的
from flask_app.restful_api_manage.hepler import error_response_default, unauthorized_response
class BaseErrorHandler(Resource):
"""
註冊錯誤管理機制
get/post/delete/patch/put/head
"""
def base_error_check(handler, handler_func):
def _check(*args, **kwargs):
added_error_instances = (
AppError, NotFoundError, UnauthorizedError, ValidationError, ParaValidateFailError, MoreValidationError)
try:
ret = handler_func(*args, **kwargs)
except added_error_instances as e:
code = getattr(e, "code", 500)
code = 500 if code < 200 else code
return error_response_default(handler, code, e.msg, e.error_code)
else:
return ret
return _check
def __init__(self):
if hasattr(self, 'get'):
self.get = base_error_check(self, self.get)
if hasattr(self, 'post'):
self.post = base_error_check(self, self.post)
if hasattr(self, 'delete'
self.delete = base_error_check(self, self.delete)
if hasattr(self, 'patch'):
self.patch = base_error_check(self, self.patch)
if hasattr(self, 'put'):
self.put = base_error_check(self, self.put)
if hasattr(self, 'head'):
self.head = base_error_check(self, self.head)
class BaseModelHandler(BaseErrorHandler):
def __init__(self):
super(BaseModelleHandler, self).__init__()
- 這一塊主要是對Resource封裝了一個方法 捕捉錯誤異常格式化返回數據