`
美丽的小岛
  • 浏览: 309384 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

django 引用{% url "name"%} 避免链接硬编码<转>

 
阅读更多

http://blog.chinaunix.net/uid-11390629-id-4059271.html

前提条件,为每个url指定name且name值要唯一。比如:
项目中的url.py文件:
urlpatterns = patterns('',
    url(r'^$',TemplateView.as_view(template_name='welcome.html'),name="home"),
    url(r'^accounts/', include('accounts.urls', namespace="accounts")),
    url(r'^admin/', include(admin.site.urls)),
)

accounts应用中的url.py文件:
urlpatterns = patterns('',
    url(r'^login/$',  login, name="login"),
    url(r'^logout/$', logout, name="logout"),
    url(r'^register/$', views.register,name="register"),
)

1.template模板中引用:
首页url: "/"
可表示为:{%url "home" %}

应用中的链接url: "/accounts/login"
可表示为:{%url "accounts:login" %} 

next默认赋值:
<input type="hidden" name="next" value="{{ next|escape }}}" />

当跳转到"/home"时,{{ next|add:'/home/' }}这样写就太傻
可写为:<input type="hidden" name="next" value="{%url "home"%}" />

2.views中的引用:
from django.core.urlresolvers import reverse

定向到“/”
HttpResponseRedirect(reverse("home"))

定向到“/accounts/login”
HttpResponseRedirect(reverse("accounts:login"))

分享到:
评论

相关推荐

    Django模板标签中url使用详解(url跳转到指定页面)

    使用`{% url %}`模板标签的好处在于,如果URL模式发生改变,只需要修改`urls.py`文件,而不需要去每个模板文件中寻找并修改硬编码的URL。这增强了代码的灵活性和可维护性。 在实际项目中,我们通常会在`urls.py`...

    Django web框架使用url path name详解

    通常情况下,这些URL路径是硬编码在模板中的。然而,当项目的规模扩大时,这种方式容易导致URL路径的混乱和难以管理。因此,Django引入了URL Path Name的概念,即为每个URL路径定义一个唯一的名称。这样,即使URL...

    Django中URL的参数传递的实现

    通过这些工具,开发者可以在代码中引用URL的名字来动态生成URL,而不需要硬编码具体的URL路径。 例如,在模板中可以通过{% url 'news-year-archive' %}来引用名为news-year-archive的URL,而在Python代码中可以使用...

    Python Django框架url反向解析实现动态生成对应的url链接示例

    在Python的Django框架中,URL反向解析是一项非常重要的功能,它允许我们通过视图名称和相关参数动态生成URL,而不是硬编码URL。这一功能在模板和视图中得到了广泛的应用。本文将详细分析Django框架URL反向解析的具体...

    django显示HTML页面小例

    return HttpResponse('&lt;h1&gt;Hello, Django!&lt;/h1&gt;') ``` 这里我们定义了一个名为`index`的视图函数,它接收一个请求对象,然后返回一个包含HTML内容的响应。 接下来,我们需要在`webapp`的`urls.py`文件中设置URL到...

    Django技巧及建议

    当路由发生变化时,只需更改URL配置即可,而无需修改模板中的硬编码URL。 **示例代码**: ```html &lt;a href="{% url 'views.about' %}"&gt;About Page&lt;/a&gt; ``` 上面的HTML代码展示了如何使用`{% url %}`标签来生成指向`...

    Django命名URL和反向解析URL实现解析

    反向解析URL是Django中的一个高级特性,允许开发者通过URL的名称和参数来动态生成URL,而不是硬编码URL路径。这对于重构和维护代码非常有用,因为URL结构可能会发生变化,而使用反向解析可以轻松应对这种变化。 ...

    Django框架实现逆向解析url的方法

    逆向解析,又称为反向解析URL,是指根据视图函数和其参数来动态生成对应的URL路径,而不再需要手动硬编码URL。这一过程在开发中非常常见,特别是在模板中需要生成链接,或者需要通过视图函数生成URL进行重定向时。...

    Django框架视图层URL映射与反向解析实例分析

    这在模板中尤其有用,避免硬编码URL。在视图或模板中,你可以使用`reverse()`函数: ```python from django.urls import reverse url = reverse('view_name', args=[arg1, arg2]) ``` 或在模板中: ```html ...

    django反向解析URL和URL命名空间的方法

    URL反向解析允许你在视图、模板或其他代码中,通过名称而不是硬编码来引用URL,而URL命名空间则解决了多应用或同一应用的多个实例中URL名称冲突的问题。 首先,让我们深入了解一下URL反向解析。在Django中,当你...

    Python中url标签使用知识点总结

    `url`标签主要用于避免硬编码URL,提高代码的可维护性。在HTML模板中,我们可以这样使用: ```html &lt;li&gt;&lt;a href="{% url 'view_name' %}"&gt;链接文本&lt;/a&gt;&lt;/li&gt; ``` 这里的`view_name`是与视图函数相对应的URL模式...

    django-js-reverse:对Django的Javascript URL处理没有影响

    这个库的出现,解决了在前后端分离开发模式下,前端需要使用URL时,不再依赖硬编码或者手动拼接的问题。它使得在JavaScript中使用Django的URL命名空间变得更加简单和可靠。 Django框架的URL配置是通过`urls.py`文件...

    PythonWeb开发基础教程-第3章-URL分发.pptx

    - Django提供反向解析功能,允许开发者通过视图名称获取对应的URL,而无需硬编码URL字符串。这对于保持代码的可读性和可维护性至关重要。 5. **URL命名空间** - URL命名空间用于在多个应用程序之间避免URL冲突。...

    Django中url的反向查询的方法

    在Django框架中,URL的反向查询是一个重要的功能,它允许我们从视图或模板中根据名称引用URL,而无需硬编码URL路径。本文将详细介绍如何在Django中进行URL的反向查询。 首先,我们需要理解几个关键概念: 1. **...

    Django框架反向解析操作详解

    Django框架中的反向解析操作是一项实用的功能,它允许开发者根据URL名称动态生成URL路径,而不是硬编码具体的URL字符串。这种做法大大提升了代码的可维护性和可读性,尤其是在URL结构发生变化时,只需要更新URL配置...

    PythonWeb从入门到实战教程之5URL路由与视图.zip

    例如,`path('articles/&lt;int:year&gt;/&lt;int:month&gt;/', views.article_detail, name='article_detail')`,这里的`&lt;int:year&gt;`和`&lt;int:month&gt;`是参数占位符,用于捕获URL中的值。 2. **反向解析**:Django提供了反向解析...

    改进Django中的表单的简单方法

    同时,我们也去掉了表单中的硬编码URL,使用Django的`{% url 'search' %}`来生成表单提交的URL,使得代码更具灵活性和可维护性。 #### 结论 通过以上步骤,我们不仅解决了处理空查询的问题,还提高了用户体验和...

    django跳转页面传参的实现

    reverse函数允许你根据视图的name属性反向解析URL,结合kwargs参数可以插入相应的参数值,从而避免硬编码URL,使得代码更加灵活和可维护。 在实现细节上,还提到了在Django视图中处理登录和页面跳转的逻辑,如使用...

    Django中reverse反转并且传递参数的方法

    这个功能在构建动态网站时尤为关键,因为它允许你在不硬编码URL的情况下引用视图。本篇文章将深入探讨如何在Django中使用`reverse()`反转URL并传递参数。 首先,我们需要理解`reverse()`的基本用法。在Django的`...

Global site tag (gtag.js) - Google Analytics