我对 Django 相当陌生(尽管有 Python 经验)。我第一次尝试使用它创建一个新网站,这个问题困扰着我。
这是用户流程:
- 用户访问我的网站 www.newco.com
他看到的是主页和“登录”、“注册”、“关于”等链接。
用户点击这些链接并转到相应的页面。
这是我的根 urlconf:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^$',include('homepage.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^login/$', include('userlogin.urls')),
url(r'^signup/$', include('userlogin.urls'))
]
这是我的主页.url:
from django.conf.urls import url
from . import views
urlpatterns=[
url(r'^$',views.index,name='index'),
url(r'^about$',views.about,name='about'),
]
最后这是我的 homepage.views 文件:
from django.shortcuts import render
def index(request):
return render(
request,
'index.html'
)
def about(request):
return render(
request,
'about.html'
)
当我转到开发服务器的主页时,主页会正确呈现。我尝试了两种方法来访问“关于我们”页面:
我将 URL 硬编码为
<a href="/about"> About us </a>
。这将我重定向到主页。我将 URL 编码为
{% url "about" %}
。这给了我错误:未找到带有参数“()”和关键字参数“{}”的“about”的反向。尝试了 1 个模式:['$about$']。
我应该如何处理这个问题,因为这是一个更大问题的特定实例。感谢您的阅读。
最佳答案
您收到此错误是因为您的定义如下:
url(r'^$',include('homepage.urls')),
它应该是:
url(r'^',include('homepage.urls')),
当您使用 $
时,您是在告诉正则表达式到此结束。这应该可以解决您的问题。
关于python - Django 中的内部 url 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33636095/