Use app_ctx instead of request_ctx to access the app
This commit is contained in:
parent
f0d3b71a94
commit
1df2788a8f
1 changed files with 13 additions and 20 deletions
|
|
@ -13,7 +13,7 @@ from werkzeug.wrappers import Request as RequestBase, Response as ResponseBase
|
||||||
from werkzeug.exceptions import BadRequest
|
from werkzeug.exceptions import BadRequest
|
||||||
|
|
||||||
from . import json
|
from . import json
|
||||||
from .globals import _request_ctx_stack
|
from .globals import _app_ctx_stack
|
||||||
|
|
||||||
_missing = object()
|
_missing = object()
|
||||||
|
|
||||||
|
|
@ -101,7 +101,17 @@ class JSONMixin(object):
|
||||||
"""Called if decoding of the JSON data failed. The return value of
|
"""Called if decoding of the JSON data failed. The return value of
|
||||||
this method is used by :meth:`get_json` when an error occurred. The
|
this method is used by :meth:`get_json` when an error occurred. The
|
||||||
default implementation just raises a :class:`BadRequest` exception.
|
default implementation just raises a :class:`BadRequest` exception.
|
||||||
|
|
||||||
|
.. versionchanged:: 0.10
|
||||||
|
Removed buggy previous behavior of generating a random JSON
|
||||||
|
response. If you want that behavior back you can trivially
|
||||||
|
add it by subclassing.
|
||||||
|
|
||||||
|
.. versionadded:: 0.8
|
||||||
"""
|
"""
|
||||||
|
ctx = _app_ctx_stack.top
|
||||||
|
if ctx is not None and ctx.app.debug:
|
||||||
|
raise BadRequest('Failed to decode JSON object: {0}'.format(e))
|
||||||
raise BadRequest()
|
raise BadRequest()
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -142,7 +152,7 @@ class Request(RequestBase, JSONMixin):
|
||||||
@property
|
@property
|
||||||
def max_content_length(self):
|
def max_content_length(self):
|
||||||
"""Read-only view of the ``MAX_CONTENT_LENGTH`` config key."""
|
"""Read-only view of the ``MAX_CONTENT_LENGTH`` config key."""
|
||||||
ctx = _request_ctx_stack.top
|
ctx = _app_ctx_stack.top
|
||||||
if ctx is not None:
|
if ctx is not None:
|
||||||
return ctx.app.config['MAX_CONTENT_LENGTH']
|
return ctx.app.config['MAX_CONTENT_LENGTH']
|
||||||
|
|
||||||
|
|
@ -175,29 +185,12 @@ class Request(RequestBase, JSONMixin):
|
||||||
if self.url_rule and '.' in self.url_rule.endpoint:
|
if self.url_rule and '.' in self.url_rule.endpoint:
|
||||||
return self.url_rule.endpoint.rsplit('.', 1)[0]
|
return self.url_rule.endpoint.rsplit('.', 1)[0]
|
||||||
|
|
||||||
def on_json_loading_failed(self, e):
|
|
||||||
"""Called if decoding of the JSON data failed. The return value of
|
|
||||||
this method is used by :meth:`get_json` when an error occurred. The
|
|
||||||
default implementation just raises a :class:`BadRequest` exception.
|
|
||||||
|
|
||||||
.. versionchanged:: 0.10
|
|
||||||
Removed buggy previous behavior of generating a random JSON
|
|
||||||
response. If you want that behavior back you can trivially
|
|
||||||
add it by subclassing.
|
|
||||||
|
|
||||||
.. versionadded:: 0.8
|
|
||||||
"""
|
|
||||||
ctx = _request_ctx_stack.top
|
|
||||||
if ctx is not None and ctx.app.config.get('DEBUG', False):
|
|
||||||
raise BadRequest('Failed to decode JSON object: {0}'.format(e))
|
|
||||||
raise BadRequest()
|
|
||||||
|
|
||||||
def _load_form_data(self):
|
def _load_form_data(self):
|
||||||
RequestBase._load_form_data(self)
|
RequestBase._load_form_data(self)
|
||||||
|
|
||||||
# In debug mode we're replacing the files multidict with an ad-hoc
|
# In debug mode we're replacing the files multidict with an ad-hoc
|
||||||
# subclass that raises a different error for key errors.
|
# subclass that raises a different error for key errors.
|
||||||
ctx = _request_ctx_stack.top
|
ctx = _app_ctx_stack.top
|
||||||
if ctx is not None and ctx.app.debug and \
|
if ctx is not None and ctx.app.debug and \
|
||||||
self.mimetype != 'multipart/form-data' and not self.files:
|
self.mimetype != 'multipart/form-data' and not self.files:
|
||||||
from .debughelpers import attach_enctype_error_multidict
|
from .debughelpers import attach_enctype_error_multidict
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue