Python 无法访问Django中的其他应用程序

Python 无法访问Django中的其他应用程序,python,django,django-views,Python,Django,Django Views,我正在写一个Django应用程序的初学者。我目前可以下载我创建的第一个应用程序。但是,我不知道如何访问其他两个应用程序 swiss (project) |_ app_picker (default app) |_ eft |_ servermon 我当前可以通过键入127.0.0.1:8000/app\u picker/访问app\u picker。但是当我键入127.0.0.1:8000/eft或172.0.0.1:8000/servermon时,找不到页面。我在Django配置

我正在写一个Django应用程序的初学者。我目前可以下载我创建的第一个应用程序。但是,我不知道如何访问其他两个应用程序

swiss (project)
  |_ app_picker (default app)
  |_ eft
  |_ servermon
我当前可以通过键入127.0.0.1:8000/app\u picker/访问app\u picker。但是当我键入127.0.0.1:8000/eft172.0.0.1:8000/servermon时,找不到页面。我在Django配置中没有理解什么

已安装的应用程序

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app_picker',
    'etf',
    'servermon',
]
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
from . import views

urlpatterns = [
    path('eft/', views.base, name='eft_base'),
]
from django.shortcuts import render

# Create your views here.
def base(request):
    return render(request, 'eft_base.html')
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
from . import views

urlpatterns = [
    path('servermon/', views.base, name='servermon_base'),
]
from django.shortcuts import render

# Create your views here.
def base(request):
    return render(request, 'servermon_base.html')
项目URL

from django.contrib import admin
from django.urls import path
from django.views.generic import RedirectView
from django.urls import include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('app_picker/', include('app_picker.urls')),
    path('etf/', include('etf.urls')),
    path('servermon/', include('servermon.urls')),
    path('', RedirectView.as_view(url='app_picker/', permanent=True)),
]

#Add Django site authentication urls (for login, logout, password management)
urlpatterns += [
    path('accounts/', include('django.contrib.auth.urls')),
]
应用程序选择器URL

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app_picker',
    'etf',
    'servermon',
]
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
from . import views

urlpatterns = [
    path('eft/', views.base, name='eft_base'),
]
from django.shortcuts import render

# Create your views here.
def base(request):
    return render(request, 'eft_base.html')
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
from . import views

urlpatterns = [
    path('servermon/', views.base, name='servermon_base'),
]
from django.shortcuts import render

# Create your views here.
def base(request):
    return render(request, 'servermon_base.html')
eft URL

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app_picker',
    'etf',
    'servermon',
]
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
from . import views

urlpatterns = [
    path('eft/', views.base, name='eft_base'),
]
from django.shortcuts import render

# Create your views here.
def base(request):
    return render(request, 'eft_base.html')
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
from . import views

urlpatterns = [
    path('servermon/', views.base, name='servermon_base'),
]
from django.shortcuts import render

# Create your views here.
def base(request):
    return render(request, 'servermon_base.html')
eft视图

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app_picker',
    'etf',
    'servermon',
]
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
from . import views

urlpatterns = [
    path('eft/', views.base, name='eft_base'),
]
from django.shortcuts import render

# Create your views here.
def base(request):
    return render(request, 'eft_base.html')
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
from . import views

urlpatterns = [
    path('servermon/', views.base, name='servermon_base'),
]
from django.shortcuts import render

# Create your views here.
def base(request):
    return render(request, 'servermon_base.html')
servermon URL

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app_picker',
    'etf',
    'servermon',
]
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
from . import views

urlpatterns = [
    path('eft/', views.base, name='eft_base'),
]
from django.shortcuts import render

# Create your views here.
def base(request):
    return render(request, 'eft_base.html')
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
from . import views

urlpatterns = [
    path('servermon/', views.base, name='servermon_base'),
]
from django.shortcuts import render

# Create your views here.
def base(request):
    return render(request, 'servermon_base.html')
servermon视图

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app_picker',
    'etf',
    'servermon',
]
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
from . import views

urlpatterns = [
    path('eft/', views.base, name='eft_base'),
]
from django.shortcuts import render

# Create your views here.
def base(request):
    return render(request, 'eft_base.html')
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
from . import views

urlpatterns = [
    path('servermon/', views.base, name='servermon_base'),
]
from django.shortcuts import render

# Create your views here.
def base(request):
    return render(request, 'servermon_base.html')

etf.urls.py
中更改:

path('eft/', views.base, name='eft_base'),
path('servermon/', views.base, name='servermon_base'),
致:

然后访问:

127.0.0.1:8000/eft/    
127.0.0.1:8000/servermon/

类似地,在
servermon.url.py
change中:

path('eft/', views.base, name='eft_base'),
path('servermon/', views.base, name='servermon_base'),
致:

然后访问:

127.0.0.1:8000/eft/    
127.0.0.1:8000/servermon/

在不更改这些文件的情况下,如果要访问,则需要使用:

127.0.0.1:8000/eft/eft/
这里来自url
eft/eft/

path('etf/', include('etf.urls')),
匹配第一个
eft/
,然后继续搜索
etf.urls.py中的剩余部分
eft/

path('eft/', views.base, name='eft_base'),
匹配剩余部分
eft/
视图。base
用于处理请求


同样,对于另一个用途:

172.0.0.1:8000/servermon/servermon/


您可能需要阅读:and.

这是因为您的路径定义与预期结果不一样

eft URL应如下所示:

urlpatterns = [
    path('', views.base, name='eft_base'),
]
servermon URL

urlpatterns = [
    path('', views.base, name='servermon_base'),
]
这是因为当您访问
172.0.0.1:8000/servermon/
时,django将转到根URL(项目URL)以匹配路径。找到
/servermon/
,然后它将在url中提取此部分,然后转到
包含('servermon.url')
。提取匹配的部分后,现在它只有
'
,因此您的servermon路径应该与上面的一样