zjp注释 #47

Merged
phm9gvnzi merged 4 commits from zjp_branch into master 3 months ago

@ -1,42 +1,45 @@
# zjp: 用户账户管理URL配置模块
# zjp: 定义用户认证、注册、密码管理等账户相关功能的URL路由
from django.urls import path
from django.urls import re_path
from . import views
from .forms import LoginForm
# 定义应用的命名空间用于反向解析URL
# zjp: 定义应用的命名空间用于反向解析URL
app_name = "accounts"
# URL模式配置 - 用户账户相关功能
# zjp: URL模式配置 - 用户账户相关功能
urlpatterns = [
# 用户登录
re_path(r'^login/$', # 使用正则表达式匹配登录路径,必须以/login/结尾
views.LoginView.as_view(success_url='/'), # 登录类视图,登录成功后跳转到首页
name='login', # URL名称用于反向解析
kwargs={'authentication_form': LoginForm}), # 传递自定义登录表单类
# 用户注册
re_path(r'^register/$', # 注册路径,必须以/register/结尾
views.RegisterView.as_view(success_url="/"), # 注册类视图,注册成功后跳转到首页
name='register'), # URL名称
# 用户退出登录
re_path(r'^logout/$', # 退出登录路径,必须以/logout/结尾
views.LogoutView.as_view(), # 退出登录类视图
name='logout'), # URL名称
# 账户操作结果页面
path(r'account/result.html', # 结果页面路径使用path函数
views.account_result, # 使用函数视图显示账户操作结果
name='result'), # URL名称
# 忘记密码页面
re_path(r'^forget_password/$', # 忘记密码路径,必须以/forget_password/结尾
views.ForgetPasswordView.as_view(), # 忘记密码类视图
name='forget_password'), # URL名称
# 忘记密码验证码处理
re_path(r'^forget_password_code/$', # 忘记密码验证码路径,必须以/forget_password_code/结尾
views.ForgetPasswordEmailCode.as_view(), # 忘记密码邮箱验证码类视图
name='forget_password_code'), # URL名称
# zjp: 用户登录功能 - 处理用户登录认证
re_path(r'^login/$', # zjp: 使用正则表达式匹配登录路径,必须以/login/结尾
views.LoginView.as_view(success_url='/'), # zjp: 登录类视图,登录成功后跳转到首页
name='login', # zjp: URL名称用于反向解析
kwargs={'authentication_form': LoginForm}), # zjp: 传递自定义登录表单类,增强安全性
# zjp: 用户注册功能 - 处理新用户注册
re_path(r'^register/$', # zjp: 注册路径,必须以/register/结尾
views.RegisterView.as_view(success_url="/"), # zjp: 注册类视图,注册成功后跳转到首页
name='register'), # zjp: URL名称,用于模板中的反向解析
# zjp: 用户退出登录功能 - 处理用户登出
re_path(r'^logout/$', # zjp: 退出登录路径,必须以/logout/结尾
views.LogoutView.as_view(), # zjp: 退出登录类视图,清理用户会话
name='logout'), # zjp: URL名称,用于安全退出链接
# zjp: 账户操作结果页面 - 显示注册、登录等操作的结果信息
path(r'account/result.html', # zjp: 结果页面路径使用path函数定义静态URL
views.account_result, # zjp: 使用函数视图显示账户操作结果页面
name='result'), # zjp: URL名称,用于操作完成后的跳转
# zjp: 忘记密码页面 - 处理密码重置请求
re_path(r'^forget_password/$', # zjp: 忘记密码路径,必须以/forget_password/结尾
views.ForgetPasswordView.as_view(), # zjp: 忘记密码类视图,处理密码重置逻辑
name='forget_password'), # zjp: URL名称,用于密码重置入口
# zjp: 忘记密码验证码处理 - 接收和验证邮箱验证码
re_path(r'^forget_password_code/$', # zjp: 忘记密码验证码路径,必须以/forget_password_code/结尾
views.ForgetPasswordEmailCode.as_view(), # zjp: 忘记密码邮箱验证码类视图,处理验证逻辑
name='forget_password_code'), # zjp: URL名称,用于验证码提交接口
]

@ -1,3 +1,113 @@
<<<<<<< HEAD
# 导入 Django 内置的路径配置工具和缓存装饰器
from django.urls import path
from django.views.decorators.cache import cache_page
# 导入当前应用blog的视图模块用于关联路由与视图逻辑
from . import views
# 定义应用命名空间namespace用于在模板或反向解析时区分不同应用的路由
# 例如:在模板中使用 {% url 'blog:index' %} 生成首页链接
app_name = "blog"
# 路由配置列表,每个 path 对应一个 URL 规则与视图的映射
urlpatterns = [
# 首页路由:匹配根路径(网站域名/
path(
r'', # URL 路径表达式,空字符串表示根路径
views.IndexView.as_view(), # 关联的视图类IndexView通过 as_view() 转换为可调用视图
name='index' # 路由名称,用于反向解析(如 reverse('blog:index')
),
# 分页首页路由:匹配带页码的首页(如 /page/2/
path(
r'page/<int:page>/', # <int:page> 是路径参数int 表示接收整数类型page 是参数名
views.IndexView.as_view(), # 复用首页视图类,视图中会通过 page 参数处理分页
name='index_page'
),
# 文章详情页路由按日期和文章ID匹配如 /article/2023/10/20/100.html
path(
r'article/<int:year>/<int:month>/<int:day>/<int:article_id>.html',
# 路径参数year、month、day、article_id文章ID均为整数
views.ArticleDetailView.as_view(), # 文章详情视图类,处理文章展示逻辑
name='detailbyid'
),
# 分类详情页路由:按分类名匹配(如 /category/tech.html
path(
r'category/<slug:category_name>.html',
# <slug:category_name>slug 类型表示接收字母、数字、下划线和连字符组成的字符串适合URL友好的名称
views.CategoryDetailView.as_view(), # 分类详情视图类,展示该分类下的文章
name='category_detail'
),
# 分类详情分页路由:带页码的分类页(如 /category/tech/2.html
path(
r'category/<slug:category_name>/<int:page>.html',
views.CategoryDetailView.as_view(), # 复用分类视图类,通过 page 参数分页
name='category_detail_page'
),
# 作者详情页路由:按作者名匹配(如 /author/alice.html
path(
r'author/<author_name>.html',
# <author_name>:未指定类型,默认接收字符串(除特殊字符外)
views.AuthorDetailView.as_view(), # 作者详情视图类,展示该作者的文章
name='author_detail'
),
# 作者详情分页路由:带页码的作者页(如 /author/alice/2.html
path(
r'author/<author_name>/<int:page>.html',
views.AuthorDetailView.as_view(), # 复用作者视图类,通过 page 参数分页
name='author_detail_page'
),
# 标签详情页路由:按标签名匹配(如 /tag/python.html
path(
r'tag/<slug:tag_name>.html',
views.TagDetailView.as_view(), # 标签详情视图类,展示该标签下的文章
name='tag_detail'
),
# 标签详情分页路由:带页码的标签页(如 /tag/python/2.html
path(
r'tag/<slug:tag_name>/<int:page>.html',
views.TagDetailView.as_view(), # 复用标签视图类,通过 page 参数分页
name='tag_detail_page'
),
# 归档页路由:匹配 /archives.html
path(
'archives.html',
# 缓存装饰器cache_page(60*60) 表示缓存该页面1小时60秒*60减轻服务器压力
cache_page(60 * 60)(views.ArchivesView.as_view()),
name='archives' # 归档视图,通常展示按日期分组的文章列表
),
# 友情链接页路由:匹配 /links.html
path(
'links.html',
views.LinkListView.as_view(), # 友情链接视图类,展示网站链接列表
name='links'
),
# 文件上传路由:匹配 /upload
path(
r'upload',
views.fileupload, # 关联函数视图(非类视图),处理文件上传逻辑
name='upload'
),
# 缓存清理路由:匹配 /clean
path(
r'clean',
views.clean_cache_view, # 关联缓存清理视图,用于手动触发缓存清理
name='clean'
),
]
=======
from django.urls import path
from django.views.decorators.cache import cache_page
@ -60,3 +170,4 @@ urlpatterns = [
views.clean_cache_view,
name='clean'),
]
>>>>>>> ccy_branch

Loading…
Cancel
Save