python - Django 中的内部 url 重定向

标签 python django redirect

我对 Django 相当陌生(尽管有 Python 经验)。我第一次尝试使用它创建一个新网站,这个问题困扰着我。

这是用户流程:

  1. 用户访问我的网站 www.newco.com
  2. 他看到的是主页和“登录”、“注册”、“关于”等链接。

  3. 用户点击这些链接并转到相应的页面。

这是我的根 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'


     )

当我转到开发服务器的主页时,主页会正确呈现。我尝试了两种方法来访问“关于我们”页面:

  1. 我将 URL 硬编码为 <a href="/about"> About us </a> 。这将我重定向到主页。

  2. 我将 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/

相关文章:

javascript - rails : redirect with call to Ajax

php - 使用 PhpBrowser 的 Codeception 似乎不遵循重定向

python - 在Python中处理另一个线程中的信号

javascript - 通过AJAX将PHP变量传递给另一个DIV中的PHP变量

python - 如何自动将ForeignKey分配给CBV Create View?

django - 创建具有多种输入类型的表单

python - 在 seaborn.despine() 上动态设置轴偏移

python - 更新 GAE 数据存储中的条目

python - Celery 和 Django - 没有名为 'django' 的模块

redirect - IIS/Azure web.config 文件的简单规则将流量重定向到非 www HTTPS