django 链接地址匹配流程
2016-04-19 23:02
495 查看
前提:
代码结构
步骤一:
下面为某个网页的链接地址
其中的链接地址为:
第二层 blog中的url.py
步骤三:
然后调用view.detail (在view.py中)
步骤四:
然后返回 目录 blog/p/detail.html
根据article.id值在数据库中查找相应字段,填充article.title和article.content的具体值。
效果:
需要注意的是地址栏为:
而不是detail.html的目录
移除硬编码
在mysite的url中设置
代码结构
步骤一:
下面为某个网页的链接地址
<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>
相关文章推荐
- 在浏览器中输入Google.com并且按下回车之后发生了什么?
- 1003,1004,1005 Hangover,财务管理,I Think I Need a Houseboat
- BZOJ 4509 USACO 2016 Jan Gold Angry Cows
- django post_save post_delete
- django views test
- Digogo ugdx文件的制作
- Digogo ugdx文件的制作
- go语言scan空值报错
- NYOJ 30 Gone Fishing(贪心)(个人理解笔记)
- Django若干新版本一些新特性
- django1.8升级1.9的几个问题
- django-cms(二)
- django--学习错误集锦一
- 采用MogoDB生成ID的策略
- Django之邮件发送
- Django ORM - 001 - 外键表查询主表信息
- ZOJ 2404 Going Home 【最小费用最大流】
- Enjoy $10 cash coupon AF10 for cheapest runescape 2007 gold buying on Rsorder 4.18-4.26
- [django]入门教程3:模板语法及使用
- 今日BBC-4/19