【发布时间】:2017-05-17 22:00:59
【问题描述】:
如果这个问题看起来有点多余,但确实让我感到困扰,请提前抱歉。
我有一组用 Django 编写的 API,由以下 url 定义。
# urls.py
import ...
urlpatterns = [
url(r"^api/v1/account", include(profile.urls))
]
和
# profile/urls.py
import ...
urlpatterns = [
url(r"^$", AccountAPI.as_view()),
url(r"^/login$", LoginAPI.as_view()),
url(r"^/logout$", LogoutAPI.as_view())
]
此配置应只允许 url:
/api/v1/account
/api/v1/account/login
/api/v1/account/logout
这项工作是为了我的目的,但我一直收到类似警告(我有几个使用此规则定义的 API,并且警告列表更大):
?: (urls.W002) Your URL pattern '^/login$' has a regex beginning with a '/'. Remove this slash as it is unnecessary.
?: (urls.W002) Your URL pattern '^/logout$' has a regex beginning with a '/'. Remove this slash as it is unnecessary.
如果我删除 斜杠,服务器将不会验证我定义的网址。为此,我必须在 URL 的第一级添加一个 斜杠,例如:
# urls.py
import ...
urlpatterns = [
url(r"^api/v1/account/", include(profile.urls))
]
这将使帐户调用以斜线结尾,这是我不希望的。
我觉得我已经以我发现的最优雅的方式定义了网址,以达到我的目的,并且我的日志中一直有这个悲伤的警告。
我做错了吗?是否有正确的方法来定义 url,而不影响我为它们选择的结构?还是有办法关闭此警告?
【问题讨论】: