Django-url中的空字符串未重定向到索引页面
Posted
技术标签:
【中文标题】Django-url中的空字符串未重定向到索引页面【英文标题】:Django- empty string in url is not redirecting to the index page 【发布时间】:2019-08-02 18:02:01 【问题描述】:我正在学习 django,在我的应用程序中,我有一个 urls.py,其中有 4 个 url 模式。如果在 url 末尾没有输入字符串,那么它必须根据代码重定向到索引页面,但它没有发生。休息网址工作正常。
我的 urls.py
from django.contrib import admin
from django.urls import path
from .views import index, about, news
from django.conf import settings
from mainsite import views
urlpatterns = [
path(r'^$', views.index, name='index'),
path(r'about/', views.about, name='about'),
path(r'news/', views.news, name='news'),
path(r'admin/', admin.site.urls),
]
我的意见.py
from django.shortcuts import render
from datetime import datetime
from .models import Article
def index(request) :
context =
'current_date': datetime.now(),
'title': 'Home'
return render(request, 'index.html', context )
def about(request) :
context =
'current_date': datetime.now(),
'title': 'About'
return render(request, 'about.html', context )
def news(request) :
populate_db()
articles = get_articles()
context =
'articles': articles,
'current_date': datetime.now(),
'title': 'News'
return render(request, 'news.html', context )
def get_articles():
result = Article.objects.all()
return result
def populate_db():
if Article.objects.count() == 0:
Article(title = 'first item', content = 'this is the first database item').save()
Article(title = 'second item', content = 'this is the second database item').save()
Article(title = 'third item', content = 'this is the third database item').save()
这是我遇到的错误 enter image description here
【问题讨论】:
【参考方案1】:从以下位置更改您的 url 路径:
path(r'^$', views.index, name='index'),
到
path('', views.index, name='index'),
因为path 将字符串或带有尖括号的部分(如<username>
)用于url 的动态部分。您的其他 url 模式定义也是如此:
path('about/', views.about, name='about'),
path('news/', views.news, name='news'),
path('admin/', admin.site.urls),
如果您打算将正则表达式用作 url 模式的一部分,请使用 re_path。
【讨论】:
我尝试使用 path('', views.index, name='index'),但它也不起作用【参考方案2】:根据 Django Docs,你不能在 path() 中使用正则表达式,如果你想使用正则表达式,请在此处检查 path,然后使用此处指定的 re_path re_path。
【讨论】:
以上是关于Django-url中的空字符串未重定向到索引页面的主要内容,如果未能解决你的问题,请参考以下文章