在 django、pycharm 中找不到页面?

Posted

技术标签:

【中文标题】在 django、pycharm 中找不到页面?【英文标题】:Page not found in django, pycharm? 【发布时间】:2020-09-17 18:18:27 【问题描述】:

我正在与 django 项目合作创建一个网站 当我设置第一个网址时它可以正常工作,但是当我在 products/new/ 之后添加新网址时,它显示找不到页面

找不到页面 (404) 请求方法:GET 请求网址:http://127.0.0.1:8000/products/new/ 使用 pyshop.urls 中定义的 URLconf,Django 按以下顺序尝试了这些 URL 模式:

这是文件夹,

products.urls.py:

from django.urls import path
from . import views


urlpatterns = [
path('', views.index),
path('new', views.new)
]

views.py:

from django.http import HttpResponse
from django.shortcuts import render


def index(request):
return HttpResponse('Hello world')


def new(request):
return HttpResponse('New Products!!!!!!!!!!!!!')

apps.py:

from django.apps import AppConfig


class ProductsConfig(AppConfig):
name = 'products'

pyshop.urls.py:

"""pyshop URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/2.1/topics/http/urls/
Examples:
Function views
1. Add an import:  from my_app import views
2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
1. Add an import:  from other_app.views import Home
2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path, include

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

这是错误

找不到页面 (404) 请求方法:GET 请求 URL:http://127.0.0.1:8000/products/new/ 使用中定义的 URLconf pyshop.urls,Django 尝试了这些 URL 模式,顺序如下:

管理员/产品/产品/新

当前路径 products/new/ 与其中任何一个都不匹配。

【问题讨论】:

这post 有帮助吗? 欢迎来到***,见how to ask 显示您的项目目录和完整的追溯代码,谢谢。 实际上我不知道要发送什么我对编程很陌生,你能告诉我我到底要发送什么......请帮帮我!!! @MuhammadFaizanFareed 您在控制台上获得的项目文件夹和错误屏幕截图,然后我们可以追踪您的错误,谢谢。像这样django-project-skeleton.readthedocs.io/en/latest/structure.html 【参考方案1】:

注意

为您的应用使用单数名称而不是复数名称:

产品而不是产品。


模板目录

首先在您的产品应用程序中创建模板目录,然后在模板文件夹名称中创建另一个目录,名称必须是您的应用程序名称(产品)。

products # app name 
   templates # templates folder
       products # again app name
          aboutme.html # here your all html pages
          mypage2.html

Views.py

from django.http import HttpResponse
from django.shortcuts import render


def index(request):
    return HttpResponse('Hello world')

def new(request):
    return HttpResponse('New Products!!!!!!!!!!!!!')

#or if you want to return html page then 
def aboutme(request):
   return render(request,'products/aboutme.html')

产品应用 urls.py

from django.urls import path
from . import views


urlpatterns = [
path('', views.index),
path('new', views.new),
path('all-about-me/', views.aboutme,name = 'about_me'), # get rid of hard coded urls so always use name parameter to give some name to your view.  
] 

项目 urls.py 文件

在此处添加所有应用的网址。

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

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

将您的应用添加到设置中

INSTALLED_APPS = [
    # others goes here

    'products.apps.ProductsConfig',# your products app

]

你的项目目录和代码必须和上面一样。

您缺少我在上面描述的任何上述步骤,并且在 URLS 中令人困惑。

http://127.0.0.1:8000 它显示 PageNotFound 404 因为您没有在主 URLS.py 中定义任何索引页面

http://127.0.0.1:8000/products 它显示“Hello world”(称为索引视图)。

http://127.0.0.1:8000/products/new 它显示“新产品!!!!!!!!!!!!!!!” (称为新视图)。

http://127.0.0.1:8000/products/all-about-me 它渲染 aboutme.html(称为 aboutme 视图)

仍有疑惑发表评论。

【讨论】:

请解释如何在产品应用程序中执行该模板创建步骤!!!! @Muhammad Faizan Fareed 什么意思?喜欢如何创建 html 页面模板或模板目录?或者页面是如何从头到尾提供的?

以上是关于在 django、pycharm 中找不到页面?的主要内容,如果未能解决你的问题,请参考以下文章

pycharm 工具栏Tool中找不到Run manager.py Task

我收到错误:在 django 中找不到页面

Django Admin '在 /admin/ 中找不到页面

在 wsgi.py 的“django.py”中找不到引用“DjangoWhiteNoise”

Django应用程序在同一目录中找不到json文件[关闭]

Pycharm:“在 'image.py' 中找不到参考 'load'”