django 模板中url的处理

 

在模板中直接添加‘/home’这样的链接是十分不推荐的,因为这是一个相对的链接,在不同网页中打开可能会返回不一样的结果。

所以推荐的是

1
<a href="{{ object.get_absolute_url }}">{{ object.name }}</a>

这种方式,或者

1
<a href={% url 'article' article.pk %} >

这里第二种方式同时需要在urls.py中设置,

1
url(r'^article/(?P<pk>[0-9]+)/$', article, name='article'),

同时对应的article_view应该有2个参数(request, pk)

  

get_absolute_url是一个方法,需要在model里声明一下;下面是官方的推荐使用方式

不推荐

1
2
# 不推荐<br>def get_absolute_url(self):
    return "/people/%i/" % self.id<br># 推荐
def get_absolute_url(self):
from django.core.urlresolvers import reverse
return reverse('people.views.details', args=[str(self.id)])# 不推荐
def get_absolute_url(self):
return '/%s/' % self.name
<!-- BAD template code. Avoid! -->
<a href="/people/{{ object.id }}/">{{ object.name }}</a># 推荐
<a href="{{ object.get_absolute_url }}">{{ object.name }}</a>

  

更具体的可以参考一下 https://github.com/the5fire/django_selfblog/blob/master/selfblog/blog/models.py

这里作者使用了“伪静态url”,get_absolute_url方法如

1
2
def get_absolute_url(self):
        return '%s/%s.html' % (settings.DOMAIN, self.alias)

alias是自己设置的,生成的链接就是: http://example.com/alias这种,由于一篇文章的链接是固定的,所以看上去像静态页面一样 

Django中URL有关的更多相关文章

  1. Django中url匹配规则的补充

    Django中url匹配规则是在urls.py文件中配置的. 1.关于正则匹配优先级 在url匹配列表中,如果第一条和第二条同时满足匹配规则,则优先匹配第一条. 在url匹配列表中,如果第一条为正则模 ...

  2. django中url路由配置及渲染方式

    今天我们学习如何配置url.如何传参.如何命名.以及渲染的方式,内容大致有以下几个方面. 创建视图函数并访问 创建app django中url规则 捕获参数 路径转换器 正则表达式 额外参数 渲染方式 ...

  3. django中url 和 path 的区别

    django中 url 和 path 都是配置路径,有什么不同? django.urls path django.conf.urls  url path 与 url 是两个不同的模块,效果都是响应返回 ...

  4. django 中url与path小记

    1. 在django 2.0中增加了一些新的特性 更简单的URL路由语法 (Simplified URL routing syntax) admin应用的针对移动设备的优化改进(Mobile-frie ...

  5. Django——URL详解/Django中URL是如何与urls文件匹配的

    URL标准语法 protocol://hostname[:port]/path/[:parameters][?query]#fragment https://i.cnblogs.com/EditPos ...

  6. Django 中url补充以及模板继承

    Django中的URL补充 默认值 在url写路由关系的时候可以传递默认参数,如下: url(r'^index/', views.index,{"name":"root& ...

  7. Django中url使用命名空间的错误

    出的错误: 1. Reverse for 'llist' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) ...

  8. django中url,静态文件,POST请求的配置 分类: Python 2015-06-01 17:00 789人阅读 评论(0) 收藏

    平时使用的是pycharm,所以这篇文章主要也是使用pycharm默认创建的django项目为基础进行讲解.项目目录如下图: 1.URL的配置 当创建好项目后,运行项目就可以看到django默认的页面 ...

  9. Django中url的反向查询

    明确几个概念: application namespace:   正在部署的app的名称,一个app的多个实例应该具有相同的application namespace.   可以通过在URLconf模 ...

随机推荐

  1. fiddle扩展

    扩展地址:http://www.telerik.com/fiddler/add-ons 证书选择 ios设置证书生成 (CertMaker for iOS and Android) 证书查看 (Fid ...

  2. Asp.net的HttpContext.Current.Items详解

    之前asp.net只是在使用Session来进行用户会话时的信息存储,甚至很少留意Session完整的类调用是HttpContext.Current.Sessoin.... 好吧,我还是处于只会固定写 ...

  3. GPL、BSD、MIT、Mozilla、Apache、LGPL开源协议介绍

    BSD开源协议 BSD开源协议是一个给于使用者很大自由的协议.基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布. 但”为所欲为”的前提当你发布使 ...

  4. Spring Boot常见配置及错误

    一.SpringBoot常见配置 (1)SpingBoot与MyBatis集成时跟踪SQL语句 log4j: logger: java: sql: ResultSet: TRACE (2)日志跟踪 d ...

  5. linux驱动面试题整理

    1.字符型驱动设备你是怎么创建设备文件的,就是/dev/下面的设备文件,供上层应用程序打开使用的文件? 答:mknod命令结合设备的主设备号和次设备号,可创建一个设备文件. 评:这只是其中一种方式,也 ...

  6. CentOS 7.5 安装KVM虚拟机(Windows)

    一.KVM环境搭建1.检测系统是否支持cat /proc/cpuinfo | egrep 'vmx|svm' KVM是基于x86虚拟化扩展(Intel VT 或者 AMD-V)技术的虚拟机软件,所以查 ...

  7. 关于XCode工程中PrefixHead.pch文件的使用

    1.首先先清除pch文件在工程中的作用: 存放一些全局的宏(整个项目中都用得上的宏) 用来包含一些全部的头文件(整个项目中都用得上的头文件) 能自动打开或者关闭日志输出功能 2.由于新建的XCode工 ...

  8. Spark性能优化指南——基础篇

    本文转自:http://tech.meituan.com/spark-tuning-basic.html 感谢原作者 前言 在大数据计算领域,Spark已经成为了越来越流行.越来越受欢迎的计算平台之一 ...

  9. java执行post请求,并获取json结果组成想要的内容存放本地txt中

    大概就是这样一个post 然后用户的需求是: 1.分析这个接口,实现1.1 获取到sentence,  score字段值1.2 这个score值如果是<0.5,打印分值 情感倾向:0       ...

  10. Maven私服(Repository Manager) - Nexus安装和使用(详细过程)

    Maven私服的安装和使用. (注:原创文章,引用请注明来自Clement-Xu的博客!) Maven私服(即Repository Manager)的主要作用: 减少从远方仓库下载的次数,节省带宽.提 ...