前提:

代码结构

步骤一:

下面为某个网页的链接地址

<body>
{% if latest_article_list %}
<ul>
{% for article in latest_article_list %}
<li>
<a href="/blog/p/{{ article.id }}/">
{{ article.title }} </a>
</li>
{% endfor %}
</ul>
{% else %}
<p>No articles are available.</p>
{% endif %}

其中的链接地址为:

<a href="/blog/p/{{ article.id }}/">
{{ article.title }} </a>
步骤二:
点击链接后,进行URL匹配。
第一层 mysite中的url.py
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^blog/',include('blog.urls'))
]

第二层 blog中的url.py

urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^p/(?P<article_id>[0-9]+)/$', views.detail,name='detail')
]

步骤三:

然后调用view.detail  (在view.py中)

def detail(request, article_id):
article = get_object_or_404(Article, pk=article_id)
return render(request, 'blog/p/detail.html', {'article': article})

步骤四:

然后返回 目录 blog/p/detail.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ARTICLE</title>
</head>
<body>
<h1>{{ article.title }}</h1>
<p>{{ article.content }}</p>
</body>
</html>

根据article.id值在数据库中查找相应字段,填充article.title和article.content的具体值。

效果:

需要注意的是地址栏为:

而不是detail.html的目录

移除硬编码

html文件中的链接   <a href="/blog/p/{{ article.id }}/">{{ article.title }} </a>
blog中的url.py文件有name参数
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^p/(?P<article_id>[0-9]+)/$', views.detail,name='detail')
]
所以使用{% url %}标签,链接改为
<a href="{% url 'detail'  article.id }">{{ article.title }} </a>

处理多个项目出现相同的detail,使用命名空间

在mysite的url中设置

urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^blog/',include('blog.urls', namespace='blog'))
]
链接改为
<a href="{% url 'blog:detail'  article.id }">{{ article.title }} </a>

django 链接地址匹配流程的更多相关文章

  1. django的url匹配流程

    URL匹配流程(路由解析顺序): URL匹配流程说明 域名.端口.端口后的 /,以及查询字符串(问号后面的键值参数)不参与匹配 先到项目下的 urls.py 进行匹配,再到应用的 urls.py 匹配 ...

  2. php完美匹配邮箱、链接地址和电话号码

    php完美匹配邮箱.链接地址和电话号码 写了好一会有问题,朋友这边很好功能,借用了.嘎嘎 //31日 更新: 匹配手机以及电话号码 重新修改,可支持18开头的手机号,并修改bug,可匹配出字符串中所有 ...

  3. js正则匹配的出链接地址

    content为需要匹配的值 var b=/<a([\s]+|[\s]+[^<>]+[\s]+)href=(\"([^<>"\']*)\"| ...

  4. 搭建Django链接MySQL流程(python2版)

    之前生成选型python3,除了用的python3的pymysql模块之外其他的都是一样的. 1.首先搭建mysql(Mariadb)数据库(单点)         安装方式分为yum安装,rpm包安 ...

  5. 关于使用连接器arm-linux-ld时指定链接地址的作用

    首先,记住一句话:程序的链接地址必须等于运行地址! 在学习exynos 4412的启动过程时,发现自己对链接地址的作用不是很了解,于是上网查找了资料做了基本了解,在此做个总结. 上图是exynos 4 ...

  6. Django中间件的执行流程

    Django中间件的执行流程. 请求到达中间件之后,先按照正序执行每个注册中间件的process_reques方法,process_request方法返回的值是None,就依次执行, 如果返回的值是H ...

  7. Django Rest framework实现流程

    目录 一 什么是restful架构 二 Django REST framework简介 三 Django REST framework原理 四 Django REST framework源码流程 五 ...

  8. Django 链接MySQL及数据操作

    Django 链接MySQL Django创建的项目自带的数据库是SQLite3,我们想要链接MySQL的话,需要更改settings.py中的配置 1.在MySQL中创建好数据库,Django项目不 ...

  9. Django运行方式及处理流程总结(转发)

    之前在网上看过一些介绍Django处理请求的流程和Django源码结构的文章,觉得了解一下这些内容对开发Django项目还是很有帮助的.所以,我按照自己的逻辑总结了一下Django项目的运行方式和对R ...

随机推荐

  1. centos 防火墙开放80端口

    辛辛苦苦编译安装完Ngnix,mysql ,PHP,后发现不能访问,后来发现是防火墙把80端口给禁用了.开启之:(以下参考自:http://llhdf.javaeye.com/blog/526176) ...

  2. Ubuntu 16.04下编译安装Apache2.4和PHP7结合

    Ubuntu 16.04下编译安装Apache2.4和PHP7结合,并安装PDOmysql扩展. 1.编译安装apache2.4.20 1 第一步: ./configure --prefix=/usr ...

  3. Unity3D引擎之渲染技术系列一

    笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者.国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D ...

  4. Unable to resolve address &#39; &#39; service &#39; &#39;: Name or service not known

    感谢朋友支持本博客,欢迎共同探讨交流,因为能力和时间有限,错误之处在所难免.欢迎指正. 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  5. shiro自定义拦截url

    在实际项目上,我们针对不同的用户(guste,user,admin,mobile user)等等,需要进入不同的页面,比如,手机端用户需要进入Mobile/这个路径下的,这个时候,我们需要自定义拦截u ...

  6. 中国版Office 365混合部署功能

    中国版Office 365混合部署功能已经正式上线了(原计划6月份推出),虽然支持的类型不如国际版的Office 365全面,但这也标志了该功能与之前相比,已经迈出了重要一步.目前中国版Office ...

  7. shell脚本注释方法

    [1]单行注释 利用“#”对单行进行注释. 示例应用,新建文本,命名为test_single.sh 输入内容: # 单行注释 echo '单行注释' echo '123' # echo '456' e ...

  8. 查看apache,nginx,mysql,linux,php版本

    查看apache版本 /usr/sbin/apachectl -v httpd -v 安装目录,使用apachectl -v mysql版本查看 mysql -V 查看linux版本 1.cat /e ...

  9. 实现asp.net mvc页面二级缓存,提高访问性能

    实现的mvc二级缓存的类 //Asp.Net MVC视图页面二级缓存 public class TwoLevelViewCache : IViewLocationCache { private rea ...

  10. android菜鸟学习笔记19----Android数据存储(三)XML文件的解析及序列化

    Android内置了PULL解析器的XPP3实现,以及SAX解析器等,可以直接使用PULL或SAX解析XML,直接把JAVA中进行PULL或SAX解析的代码直接拿来用,遗忘的话,可以参考java拾遗1 ...