一个应用程序的 Django URL 路由

Django URL routing for one app

我正在尝试 return 不同的模板用于不同的 url(只有一个应用程序),所以基本上我想 return:

一个模板用于:http://127.0.0.1:8000/projects/

另一个模板:http://127.0.0.1:8000/formpage/

我有项目urls.py:

    from django.conf.urls import url,include
    from django.contrib import admin
    from appone import views

    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        #home page
        url(r'^$', views.index, name='index'),
        url(r'^projects/', include('appone.urls')),
        url(r'^formpage/',  include('appone.urls')),
    ]

和应用 urls.py:

    from django.conf.urls import url,include
    from django.http import HttpResponse
    from . import views

    urlpatterns = [
        url(r'^$', views.projs, name='proj'),
        url(r'^$', views.form_view, name='form_view')
    ]

我有视图和模板,很好,但我不明白我如何 return 它们基于 url,因为目前我 return来自应用程序 urls.py 的第一个视图,两个 urls.

为两个 url(projsform_view)创建单独的视图函数。

然后在projects/urls.py

urlpatterns = [
    ...
    url(r'^projects/', views.projs, name='proj'),
    url(r'^formpage/', views.form_view, name='form_view')
    ...
]`

或者,如果您想要单独的 urls.py 文件

projects/urls.py:

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    #home page
    url(r'^$', views.index, name='index'),
    url(r'^', include('appone.urls')),
]`

appone/urls.py

urlpatterns = [
    url(r'^projects/', views.projs, name='proj'),
    url(r'^formpage/', views.form_view, name='form_view')
]`

您真的需要第二个 urls 页吗?您可以将第一个 urls.py 设置为:

from django.conf.urls import url,include
from django.contrib import admin
from appone import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    #home page
    url(r'^$', views.index, name='index'),
    url(r'^projects/', views.projs, name='proj'),
    url(r'^formpage/', views.form_view, name='form_view'),
]