python - 如何避免django中的url增加

标签 python django django-forms

我是 Django 新手,通过开发小项目来学习它。 目前我正在创建登录应用程序。我面临以下问题, 我已在一个模板中的表单标签上写入:

<form method="GET" action="login_page/">
    {% csrf_token %}
    <button type ="submit"> Login</button>
</form>

点击提交按钮后,我会转到登录/页面网址。

在另一个模板中,我在表单标签下面编写了,

<form method="GET" action= "Welcome/">
        {% csrf_token %}
        <button type ="submit"> Sign Up</button>
</form>

我的网址是:

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^login_page/', include('login.urls'))
]

urlpatterns=[

   #url(r'^$',TemplateView.as_view(template_name='base.html'),name='base'),
   url(r'^$',views.HomeView.as_view(),name='home'),
   url(r'^Welcome/$', views.WelcomeView.as_view(), name='Welcome'),
   #url(r'^Welcome/$',TemplateView.as_view(template_name='Welcome.html'),name='Welcome'),
   url(r'^logout/$',TemplateView.as_view(template_name='Logout.html'),name='Logout'),
   url(r'^home/$',views.HomeView.as_view(),name='home')

]

但问题是,当我继续点击提交按钮时,URL 不断增加,例如 http://localhost:8000/login_page/ 本地主机:8000/login_page/欢迎/ 本地主机:8000/login_page/欢迎/login_page

因此它会给出错误,因为它找不到第三个网址。如何纠正它。 ?我们可以在表单标签中查看操作吗?

最佳答案

使用url模板标签。通过这样做,这个辅助模板标记将自动用正确的 url 替换 url。

<form method="POST" action="{% url 'Welcome' %}">

其中 Welcome 是网址名称,

url(r'^Welcome/$', views.WelcomeView.as_view(), name='Welcome'),
                                                      #  ^ this one

对其他网址执行相同的操作。

文档链接:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#url

关于python - 如何避免django中的url增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46416571/

相关文章:

django - 将缩略图照片从 ldap 导入并保存到 django imagefield

python - 尝试设置 django-contact-form 时 URL 配置出错

python - Selenium select_by_value 然后打印选项文本

python - 如何获取单引号内的字符串但忽略 "' s "and " 't "?

python - Django ALLOWED_HOSTS 与 CORS(django-cors-headers)

python - Django根据表单集中的其他两个字段计算字段

django - model.AutoField - form.save() 创建新记录(INSERT)而不是更新现有记录

python - *args 和 **kwargs 是什么意思?

python - 代码在 PyCharm 上运行,但不在 Jupyter 上运行

javascript - 在 Django python url 模板标签中获取 javascript 变量的值