如何在单个Django项目中为多个Django应用程序设置路径(URL)

问题描述 投票:0回答:1

我有一个Django项目,其中有两个不同的Django应用程序MyApp1和MyApp2(更改了名称)。

结构是这样的:

MyProject
   MyApp1
      static
      templates
      urls.py
      views.py
      ...
   MyProject
      settings.py
      urls.py
      ...

我将MyApp2作为一个单独的应用程序编写在另一个Django项目中,并将其与MyProject项目集成在一起(pip install MyApp2)。这是settings.py文件中已安装的应用程序:

# Application definition
INSTALLED_APPS = [
    'MyApp1',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'MyApp2',
]

这些是MyProject的以下路径(urls.py)。

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('myapp1/', include('myapp1.urls')),
    path('', include('myapp1.urls')),
    path('myapp2/',include('myapp2.urls')),
]

这些是MyApp1的以下路径(urls.py):

from django.urls import path
from . import views
from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
    path('about/', views.about, name='about'),
    path('contact/', views.contact, name='contact'),
]

这些是MyApp2的以下路径(urls.py):

from django.urls import path
from . import views

urlpatterns = [
    path('', views.login, name='login'),
    path('index', views.home, name='home'),
    path('dashboard_output', views.dashboard_output, name='dashboard_output'),
    path('login', views.login, name='login'),
]

在浏览器上,如果我键入http://127.0.0.1:8000/http://127.0.0.1:8000/myapp1,则可以看到MyApp1的视图。

在浏览器上,如果我输入http://127.0.0.1:8000/myapp2,则会看到MyApp2的视图(登录页面)。>>

到目前为止,很好,但是如果我键入http://127.0.0.1:8000/myapp2/index,系统会将我定向到myapp1的视图,而不是myapp2的视图。我究竟做错了什么?有什么想法吗?

我有一个Django项目,其中有两个不同的Django应用程序MyApp1和MyApp2(更改了名称)。结构是这样的:MyProject MyApp1静态模板...

python django django-urls
1个回答
0
投票

我终于找到了引起问题的原因。它与模板有关。看看这个:https://www.webforefront.com/django/customizedjangotemplates.html

© www.soinside.com 2019 - 2024. All rights reserved.