django 链接地址匹配流程
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                django 链接地址匹配流程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                前提:
?
代碼結構
?
?
步驟一:
下面為某個網頁的鏈接地址
<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> ?
轉載于:https://www.cnblogs.com/hb91/p/5410660.html
總結
以上是生活随笔為你收集整理的django 链接地址匹配流程的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 亚比军团的属性在竞技PK时有效吗?
 - 下一篇: javascript与浏览器学习(一)