Fix: the Chinese URI

This commit is contained in:
howie6879 2018-01-07 12:06:21 +08:00
parent 42cd424274
commit e34de96b24
2 changed files with 6 additions and 5 deletions

View File

@ -7,7 +7,7 @@ from collections import deque, defaultdict
from functools import partial from functools import partial
from inspect import isawaitable, stack, getmodulename from inspect import isawaitable, stack, getmodulename
from traceback import format_exc from traceback import format_exc
from urllib.parse import quote, urlencode, urlunparse from urllib.parse import urlencode, urlunparse
from ssl import create_default_context, Purpose from ssl import create_default_context, Purpose
from sanic.config import Config from sanic.config import Config
@ -25,6 +25,7 @@ from sanic.websocket import WebSocketProtocol, ConnectionClosed
class Sanic: class Sanic:
def __init__(self, name=None, router=None, error_handler=None, def __init__(self, name=None, router=None, error_handler=None,
load_env=True, request_class=None, load_env=True, request_class=None,
strict_slashes=False, log_config=None, strict_slashes=False, log_config=None,
@ -110,11 +111,9 @@ class Sanic:
:param event: event to listen to :param event: event to listen to
""" """
def decorator(listener): def decorator(listener):
self.listeners[event].append(listener) self.listeners[event].append(listener)
return listener return listener
return decorator return decorator
# Decorator # Decorator
@ -136,7 +135,7 @@ class Sanic:
# and will probably get confused as to why it's not working # and will probably get confused as to why it's not working
if not uri.startswith('/'): if not uri.startswith('/'):
uri = '/' + uri uri = '/' + uri
uri = quote(uri)
if stream: if stream:
self.is_request_stream = True self.is_request_stream = True
@ -429,7 +428,7 @@ class Sanic:
uri, route = self.router.find_route_by_view_name(view_name, **kw) uri, route = self.router.find_route_by_view_name(view_name, **kw)
if not (uri and route): if not (uri and route):
raise URLBuildError('Endpoint with name `{}` was not found'.format( raise URLBuildError('Endpoint with name `{}` was not found'.format(
view_name)) view_name))
if view_name == 'static' or view_name.endswith('.static'): if view_name == 'static' or view_name.endswith('.static'):
filename = kwargs.pop('filename', None) filename = kwargs.pop('filename', None)

View File

@ -2,6 +2,7 @@ import re
from collections import defaultdict, namedtuple from collections import defaultdict, namedtuple
from collections.abc import Iterable from collections.abc import Iterable
from functools import lru_cache from functools import lru_cache
from urllib.parse import unquote
from sanic.exceptions import NotFound, MethodNotSupported from sanic.exceptions import NotFound, MethodNotSupported
from sanic.views import CompositionView from sanic.views import CompositionView
@ -373,6 +374,7 @@ class Router:
:param method: request method :param method: request method
:return: handler, arguments, keyword arguments :return: handler, arguments, keyword arguments
""" """
# url = unquote(url)
url = host + url url = host + url
# Check against known static routes # Check against known static routes
route = self.routes_static.get(url) route = self.routes_static.get(url)