找不到页面 (404) 请求方法:GET .......当前路径,博客/博客文章,与其中任何一个都不匹配
Posted
技术标签:
【中文标题】找不到页面 (404) 请求方法:GET .......当前路径,博客/博客文章,与其中任何一个都不匹配【英文标题】:Page not found (404) Request Method: GET ....... the current path, blog/blogpost, didn't match any of these 【发布时间】:2021-04-26 22:10:45 【问题描述】:嗨,我正在尝试制作博客网站,但是当我在 views.py 中使用 blogpost 函数获取模型时,它显示错误,即找不到 404 页面,如 ||使用 mac.urls 中定义的 URLconf,Django 尝试了这些 URL模式,按以下顺序: admin/ shop/ blog/ [name='BlogHome'] blog 当前路径 blog/blogpost 与其中任何一个都不匹配。 ||
-直到我不创建模型它工作正常但是在创建模型并尝试通过 post_id 获取文章后它会抛出错误,因为找不到页面! -我错过了什么? - 这是我正在使用的代码。
blog/urls.py 的代码 ->
from django.urls import path
from . import views
urlpatterns = [
path(" ", views.index, name="ShopHome"),
path("blogpost/<int:id>/", views.blogpost, name="blogpost")]
blog/Views.py 的代码 ->
from django.shortcuts import render
from .models import Blog
# Create your views here.
from django.http import HttpResponse
def index(request):
return render(request, 'blog/index.html')
def blogpost(request,id):
post= Blog.objects.filter (post_id=id)[0]
print(post)
return render(request, 'blog/blogpost.html','post':post)
blog/adminpy 的代码 ->
from django.contrib import admin
from .models import Blog
admin.site.register(Blog)
blog/models.py 的代码 ->
from django.db import models
# Create your models here.
class Blog(models.Model):
post_id = models.AutoField(primary_key= True)
title = models.CharField(max_length=50)
title0 = models.CharField(max_length=500,default='')
title1= models.CharField(max_length=500,default='')
title2= models.CharField(max_length=500,default='')
Content_title= models.CharField(max_length=500,default='')
Content_title0= models.CharField(max_length=500,default='')
Content_title1= models.CharField(max_length=500,default='')
Content_title2= models.CharField(max_length=500,default='')
pub_date = models.DateField()
image = models.ImageField(upload_to='shop/images', default="")
def __str__(self):
return self.title
【问题讨论】:
请发布实际代码而不是代码截图 在 url 中包含了 ' / ' 但没有得到相同的错误日志/blogpost/您正在传递一个/<int:id>/
(顺便说一句,您的网址中始终包含最后一个斜杠/
)但您的路径显示 /blog/blogpost 带有 str参数,它应该是一个 int,表示 现有 Blogpost
实例的 id
。
【讨论】:
以上是关于找不到页面 (404) 请求方法:GET .......当前路径,博客/博客文章,与其中任何一个都不匹配的主要内容,如果未能解决你的问题,请参考以下文章
找不到页面 (404) 请求方法:GET 尝试单击另一个 .html 文件
Django 错误:找不到页面 (404) 请求方法:GET 请求 URL:http://127.0.0.1:8000/helpdesk/login/?next=/
找不到页面 (404) 请求方法:POST 请求 URL:http://127.0.0.1:8000/accounts/signup/signup