sta*_*r95 9 python plugins middleware wsgi bottle
鉴于这个简单的瓶代码:
def bar(i):
if i%2 == 0:
return i
raise MyError
@route('/foo')
def foo():
try:
return bar()
except MyError as e:
response.status_code = e.pop('status_code')
return e
Run Code Online (Sandbox Code Playgroud)
如何编写Bottle中间件,以便隐式完成相同的异常处理,这样这样的代码可以与上面的代码相同:
@route('/foo')
def foo():
return bar()
Run Code Online (Sandbox Code Playgroud)
您可以使用插件优雅地执行此操作:
from bottle import abort
def error_translation(func):
def wrapper(*args,**kwargs):
try:
func(*args,**kwargs)
except ValueError as e:
abort(400, e.message)
return wrapper
app.install(error_translation)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3087 次 |
| 最近记录: |