url和path,处理网站路径。Django,通过urls.py来映射网址和页面。可用的模块有django.conf.urls.url、django.urls.path、django.urls.re_path。
有些事情,一放就是一年。今天想写写url和path。
Django,通过urls.py来映射网址和页面。可用的模块有django.conf.urls.url、django.urls.path、django.urls.re_path。
先上代码:
from django.conf.urls import url
from django.urls import path
from django.urls import re_path
from blog import views as blog_views
urlpatterns = [
path('', blog_views.index, name='index'),
url(r'^index/(\d+)/$', blog_views.index, name='index'),
# artile list
path('articles/', blog_views.articles,name='articles'),
re_path(r'^articles/(\d+)/$', blog_views.articles, name='articles_page'),
# search
path('search', blog_views.search, name='search'),
path('search/<int:page>', blog_views.search, name='search_page'),
# tag
path('tag/<str:tag>', blog_views.tag, name='tag'),
path('tag/<str:tag>/<int:page>', blog_views.tag, name='tag_page'),
# article
path('article/id/<int:article_id>.html', blog_views.article, name='article'),
path('article/title/<str:title>.html', blog_views.article_name, name='article_name'),
# note
path('note/add', blog_views.add_note, name='add_note'),
path('notes/<int:article_id>',blog_views.notes, name='notes'),
# html
path('love2018.html', blog_views.love2018, name='love2018'),
]
重点:re_path和url可以使用正则表达式,path不能。
基本使用方式为:路径+方法名+url名
路径:不用多说,就是访问网页的路径
方法名:该路径对应处理页面逻辑的方法
url名:用于在模板中自动生成路径
代码:
<li><i class="iconfont"></i>
{% for tag in article.tags_str %}
<a href="{% url 'tag' tag %}">{{tag}}</a>
{% if not forloop.last %},{% endif %}
{% endfor %}
</li>
{% url 'tag' tag %}
,url
标记这里生成一个url,tag
对应url名,最后的tag为要传到url的参数。
例子:
https://www.imzcm.com/tag/Django
就这样~~