diff --git a/djangoblog/src/DjangoBlog-master/DjangoBlog-master/blog/urls.py b/djangoblog/src/DjangoBlog-master/DjangoBlog-master/blog/urls.py index adf27036..f4314778 100644 --- a/djangoblog/src/DjangoBlog-master/DjangoBlog-master/blog/urls.py +++ b/djangoblog/src/DjangoBlog-master/DjangoBlog-master/blog/urls.py @@ -1,62 +1,98 @@ +# 导入Django URL路径处理和缓存装饰器 from django.urls import path from django.views.decorators.cache import cache_page +# 导入当前应用的视图模块 from . import views +# 定义应用命名空间,用于模板中URL反向解析(如{% url 'blog:index' %}) app_name = "blog" + +# URL路由配置列表,映射URL路径到对应的视图 urlpatterns = [ + # 首页路由 path( - r'', - views.IndexView.as_view(), - name='index'), + r'', # 匹配根路径(如域名/) + views.IndexView.as_view(), # 关联首页视图(基于类的视图) + name='index' # 路由名称,用于反向解析 + ), + # 首页分页路由(带页码参数) path( - r'page//', - views.IndexView.as_view(), - name='index_page'), + r'page//', # 匹配带页码的路径(如/page/2/) + views.IndexView.as_view(), # 复用首页视图处理分页 + name='index_page' # 路由名称 + ), + # 文章详情页路由(按日期和ID) path( r'article////.html', - views.ArticleDetailView.as_view(), - name='detailbyid'), + # 匹配路径格式:article/年/月/日/文章ID.html(如article/2023/10/01/1.html) + views.ArticleDetailView.as_view(), # 关联文章详情视图 + name='detailbyid' # 路由名称 + ), + # 分类详情页路由 path( r'category/.html', - views.CategoryDetailView.as_view(), - name='category_detail'), + # 匹配路径:category/分类别名.html(如category/tech.html),slug表示URL友好的字符串 + views.CategoryDetailView.as_view(), # 关联分类详情视图 + name='category_detail' # 路由名称 + ), + # 分类详情页分页路由 path( r'category//.html', - views.CategoryDetailView.as_view(), - name='category_detail_page'), + # 匹配带页码的分类路径(如category/tech/2.html) + views.CategoryDetailView.as_view(), # 复用分类视图处理分页 + name='category_detail_page' # 路由名称 + ), + # 作者文章列表路由 path( r'author/.html', - views.AuthorDetailView.as_view(), - name='author_detail'), + # 匹配路径:author/用户名.html(如author/admin.html) + views.AuthorDetailView.as_view(), # 关联作者文章列表视图 + name='author_detail' # 路由名称 + ), + # 作者文章列表分页路由 path( r'author//.html', - views.AuthorDetailView.as_view(), - name='author_detail_page'), + # 匹配带页码的作者路径(如author/admin/2.html) + views.AuthorDetailView.as_view(), # 复用作者视图处理分页 + name='author_detail_page' # 路由名称 + ), + # 标签详情页路由 path( r'tag/.html', - views.TagDetailView.as_view(), - name='tag_detail'), + # 匹配路径:tag/标签别名.html(如tag/python.html) + views.TagDetailView.as_view(), # 关联标签详情视图 + name='tag_detail' # 路由名称 + ), + # 标签详情页分页路由 path( r'tag//.html', - views.TagDetailView.as_view(), - name='tag_detail_page'), - path( - 'archives.html', - cache_page( - 60 * 60)( - views.ArchivesView.as_view()), - name='archives'), - path( - 'links.html', - views.LinkListView.as_view(), - name='links'), - path( - r'upload', - views.fileupload, - name='upload'), - path( - r'clean', - views.clean_cache_view, - name='clean'), + # 匹配带页码的标签路径(如tag/python/2.html) + views.TagDetailView.as_view(), # 复用标签视图处理分页 + name='tag_detail_page' # 路由名称 + ), + # 文章归档页路由(带缓存) + path( + 'archives.html', # 匹配路径:archives.html + cache_page(60 * 60)(views.ArchivesView.as_view()), # 缓存60分钟(60秒*60) + name='archives' # 路由名称 + ), + # 友情链接页路由 + path( + 'links.html', # 匹配路径:links.html + views.LinkListView.as_view(), # 关联友情链接视图 + name='links' # 路由名称 + ), + # 文件上传接口路由 + path( + r'upload', # 匹配路径:upload + views.fileupload, # 关联文件上传视图函数(基于函数的视图) + name='upload' # 路由名称 + ), + # 清理缓存接口路由 + path( + r'clean', # 匹配路径:clean + views.clean_cache_view, # 关联清理缓存视图函数 + name='clean' # 路由名称 + ), ]