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

v9tzhpje  于 2023-11-20  发布在  Go
关注(0)|答案(3)|浏览(106)

我正在编写一个初学者Django应用程序。我目前能够使用我创建的第一个应用程序。但是,我无法弄清楚如何访问其他两个应用程序。

swiss (project)
  |_ app_picker (default app)
  |_ eft
  |_ servermon

字符串
我现在可以通过输入127.0.0.1:8000/app_picker/来访问app_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',
]

项目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')),
]

app_picker URL

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')

servermon URL

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'),
]

servermon视图

from django.shortcuts import render

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

klh5stk1

klh5stk11#

etf.urls.py更改中:

path('eft/', views.base, name='eft_base'),

字符串
收件人:

path('', views.base, name='eft_base'),


然后访问:

127.0.0.1:8000/eft/


类似地,在servermon.urls.py更改中:

path('servermon/', views.base, name='servermon_base'),


收件人:

path('', views.base, name='servermon_base'),


然后访问:

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/views.base用于处理请求。
另一种用途:类似

172.0.0.1:8000/servermon/servermon/


你可能想读:URL dispatcherdjango.urls functions for use in URLconfs

kuarbcqp

kuarbcqp2#

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

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会去ROOT_URLS(Project Urls)匹配路径。找到/servermon/,然后它会在url中提取这部分,然后去include('servermon.urls')旁边。提取匹配的部分后,现在它只剩下''了,所以你的servermon路径应该像上面一样。

vybvopom

vybvopom3#

你是否在项目urls.py文件中包含了'etf'和'servermon' URL?

path('admin/', admin.site.urls),
path('', include('tvapp.urls')),
path('', include('wifiapp.urls')),

字符串

相关问题