Python Django URL中的意外字符
我正在写一个博客,并试图在帖子列表页面上进行分页操作。当我运行应用程序时,我的URL包含意外字符。例如Python Django URL中的意外字符,python,regex,django,url,Python,Regex,Django,Url,我正在写一个博客,并试图在帖子列表页面上进行分页操作。当我运行应用程序时,我的URL包含意外字符。例如 http://127.0.0.1:8000/blog/%5E$ 我不明白为什么有%5E$ 这里是我的url.py(这在blogapp中): 最后,这个bloglist页面是通过 根据zvadym之前的评论,您需要使用重新设置路径()而不是路径(),因为它是逐字解释^$。这在Django 2.0中是新的,因此它取决于您的版本。Hmdjango.url.path?我可以在我的dhango 1.11
代码>
http://127.0.0.1:8000/blog/%5E$
我不明白为什么有%5E$
这里是我的url.py(这在blogapp中):
最后,这个bloglist页面是通过
根据zvadym之前的评论,您需要使用重新设置路径()
而不是路径()
,因为它是逐字解释^$
。这在Django 2.0中是新的,因此它取决于您的版本。Hmdjango.url.path
?我可以在我的dhango 1.11中找到这个。您必须使用django.conf.urls.url
难道^$不应该捕获空的url吗?它是如何导致%5E$?您将旧样式的URL和新路径混为一谈。我建议您选择一个,如果您使用regex,您需要使用re_path this linkhttp://127.0.0.1:8000/blog/%5E$
,它调用了特定视图吗?如果是,哪一个?谢谢大家,正如@diek所说的,问题是使用带有路径函数的正则表达式。删除正则表达式后,问题得到解决。
from django.urls import path,include
from django.contrib import admin
from . import views
urlpatterns = [
path(r'^$',views.getPosts,name="bloghome"),
path(r'^(?P<selected_page>\d+)/?$',views.getPosts,name="bloghome"),
path('<slug>',views.postDetailPage,name="post_detail")
]
def getPosts(request,selected_page=1):
# latest_post = Posts.objects.get(id=1)
posts = Posts.objects.all().order_by('-pub_date')
pages = Paginator(posts,5) #Show 5 post per page
try:
returned_page = pages.page(selected_page)
except EmptyPage:
returned_page = pages.page(pages.num_pages)
#content = pages.page(selected_page)
return render(request,'blog.html',{'page':returned_page,
'posts':returned_page.object_list
})
<a href="{% url 'bloghome'%}">Blog</a>