Python 避免在Django URL上重复
我正在官方网站上制作Django教程,目前我正在使用我们正在创建的示例投票应用程序 到目前为止,我的Python 避免在Django URL上重复,python,django,Python,Django,我正在官方网站上制作Django教程,目前我正在使用我们正在创建的示例投票应用程序 到目前为止,我的polls/url.py如下所示: from django.conf.urls import url from . import views urlpatterns = [ url(r'^$', views.index, name='index'), url(r'^(?P<question_id>[0-9]+)/$', views.detail, name='det
polls/url.py
如下所示:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^(?P<question_id>[0-9]+)/$', views.detail, name='detail'),
url(r'^(?P<question_id>[0-9]+)/results/$', views.results, name='results'),
url(r'^(?P<question_id>[0-9]+)/vote/$', views.votes, name='vote')
]
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^(?P<question_id>[0-9]+)/', include([
url(r'^$', views.detail, name='detail'),
url(r'^results/$', views.results, name='results'),
url(r'^vote/$', views.votes, name='vote'),
]),
]
从django.conf.url导入url
从…起导入视图
URL模式=[
url(r'^$',views.index,name='index'),
url(r'^(?P[0-9]+)/$',views.detail,name='detail'),
url(r'^(?P[0-9]+)/results/$',views.results,name='results'),
url(r'^(?P[0-9]+)/vote/$',views.votes,name='vote')
]
我忍不住注意到
(?p[0-9]+)
的重复,所以我想知道除了将其提取为常量(如QUESTION\u PATTERN=(?p[0-9]+)
之外,是否还有更简单的方法来避免这种情况,您可以包括一系列子模式,如下所示:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^(?P<question_id>[0-9]+)/$', views.detail, name='detail'),
url(r'^(?P<question_id>[0-9]+)/results/$', views.results, name='results'),
url(r'^(?P<question_id>[0-9]+)/vote/$', views.votes, name='vote')
]
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^(?P<question_id>[0-9]+)/', include([
url(r'^$', views.detail, name='detail'),
url(r'^results/$', views.results, name='results'),
url(r'^vote/$', views.votes, name='vote'),
]),
]
urlpatterns=[
url(r'^$',views.index,name='index'),
url(r'^(?P[0-9]+)/',包括([
url(r'^$',views.detail,name='detail'),
url(r“^results/$”,views.results,name='results'),
url(r“^vote/$”,views.votes,name='vote'),
]),
]
太好了!这就是我要找的。