Url django 中的配置始终执行相同的视图
Url configuration in django always executs the same view
我想实现以下行为
- http://localhost/ 在我的应用程序中运行索引视图
- http://localhost/myview 在我的应用程序中运行 myview
所以在主要 urls.py 我有以下设置
urlpatterns = [
url(r"^", include("myapp.urls")),
url(r"^admin/", include(admin.urls)),
]
在我的应用程序中 urls.py
urlpatterns = [
url(r'$', "myapp.views.index"),
url(r'myview/$', "myapp.views.myview")
]
但是两个链接都执行索引视图,而 myview 从未执行过。我错过了什么吗?
您应该在应用的开头添加一个 ^
URL 模式:
urlpatterns = [
url(r'^$', "myapp.views.index"),
url(r'^myview/$', "myapp.views.myview")
]
请修改您的代码以反映在下面
所以在主要 urls.py
urlpatterns = [
url(r"^$", include("myapp.urls")),
url(r"^admin/", include(admin.urls)),
]
在我的应用程序中 urls.py
urlpatterns = [
url(r'^$', "myapp.views.index"),
url(r'^myview/$', "myapp.views.myview")
]
它会起作用
来自Django documentation: URL dispatcher: How Django processes a request:
- Django runs through each URL pattern, in order, and stops at the first one that matches the requested URL.
因此,模式的顺序很重要。另外,您的模式太宽泛了。
实际上,正则表达式 $
无限匹配,因此它首先匹配索引页。
尝试在 ^$
和 ^myview/$
.
之前使用 ^
来限制它们
我想实现以下行为
- http://localhost/ 在我的应用程序中运行索引视图
- http://localhost/myview 在我的应用程序中运行 myview
所以在主要 urls.py 我有以下设置
urlpatterns = [
url(r"^", include("myapp.urls")),
url(r"^admin/", include(admin.urls)),
]
在我的应用程序中 urls.py
urlpatterns = [
url(r'$', "myapp.views.index"),
url(r'myview/$', "myapp.views.myview")
]
但是两个链接都执行索引视图,而 myview 从未执行过。我错过了什么吗?
您应该在应用的开头添加一个 ^
URL 模式:
urlpatterns = [
url(r'^$', "myapp.views.index"),
url(r'^myview/$', "myapp.views.myview")
]
请修改您的代码以反映在下面
所以在主要 urls.py
urlpatterns = [
url(r"^$", include("myapp.urls")),
url(r"^admin/", include(admin.urls)),
]
在我的应用程序中 urls.py
urlpatterns = [
url(r'^$', "myapp.views.index"),
url(r'^myview/$', "myapp.views.myview")
]
它会起作用
来自Django documentation: URL dispatcher: How Django processes a request:
- Django runs through each URL pattern, in order, and stops at the first one that matches the requested URL.
因此,模式的顺序很重要。另外,您的模式太宽泛了。
实际上,正则表达式 $
无限匹配,因此它首先匹配索引页。
尝试在 ^$
和 ^myview/$
.
^
来限制它们