Python re_path django 3中的正则表达式
我的代码的问题是,我不断得到一个页面未找到404错误,路径“post/…”不匹配,当我试图点击我的posts页面上的超链接。我发了3篇帖子。可能是正则表达式吗?因为我现在不擅长正则表达式。 如何将views.py与urlpatterns中的正确路径匹配 我的URL.py是:Python re_path django 3中的正则表达式,python,python-3.x,django,regex,Python,Python 3.x,Django,Regex,我的代码的问题是,我不断得到一个页面未找到404错误,路径“post/…”不匹配,当我试图点击我的posts页面上的超链接。我发了3篇帖子。可能是正则表达式吗?因为我现在不擅长正则表达式。 如何将views.py与urlpatterns中的正确路径匹配 我的URL.py是: from django.contrib import admin from django.urls import path, re_path from blog import views as blog_views ur
from django.contrib import admin
from django.urls import path, re_path
from blog import views as blog_views
urlpatterns = [
path('post/', blog_views.post),
re_path(r'^post(.*)/$', blog_views.post),
path('about/'. blog_views.about),
path('', blog_views.index),
path('admin/', admin.site.urls)
]
My views.py是:
from django.shortcuts import render,get_object_or_404
from django.http import HttpResponse
from .models import Post
def index(request):
posts = Post.objects.all()
return render(request,'index.html', {'posts': posts})
def post(request, slug):
print(slug)
return render ('post.html',{'post': get_object_or_404(Post, slug=slug)})
def about(request):
return render(request, 'about.html', {})
您可以使用路径语法,轻松获得slug
path('post/<slug:slug>/', blog_views.post),
你有re路径而不是re_路径。不确定这是否是全部问题,但它需要修复。您甚至还没有解释错误是什么。我已经编辑并更正了打字错误。我尝试了您的解决方案,但我得到一个TypeError->join参数必须是str、bytes或os.PathLike对象,而不是'dict'
re_path(r'^post/(?P<slug>[-a-zA-Z0-9_]+)/$', views.year_archive),
[a-z0-9]+(?:-[a-z0-9]+)*