href后边是超链接地址
template中可用{% url 'app_name:url_name' param %}
其中app_name在根urls.py配置,include()中的第二个参数:namespace='blog',这个是app_name。url_name在应用urls里配置。应用的urls函数第三个参数name='article',这个是url__name。param是地址参数,据我推测(我不懂html),该参数传递给叫url_name的url函数,而该url函数里有个子组,即article_id这个变量。param赋值给了article_id,然后调用响应函数时再传递给响应函数。
取决于是否用include()引入了另一个url配置文件。
这句话不知为啥。然后根目录urls:
from django.conf.urls import url,include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^blog/', include('blog.urls', namespace='blog')),
]
应用urls里:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index),
url(r'^article/(?P<article_id>[0-9]+)$',views.article_page, name='article_page'),
]
主页面模板中
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>
<a href="">新文章 </a>
</h1>
{% for article in articles %}
<a href="{% url 'blog:article_page' article.id %}">{{ article.title}}</a>
<br/>
{% endfor %}
</body>
</html>
网友评论