ly_第五周注释

pull/11/head
LY 4 months ago
parent cc1b87e7d4
commit 29d32761cc

@ -0,0 +1,98 @@
"""djangoblog URL Configuration
项目URL路由总配置文件定义所有URL与视图/应用的映射关系
核心作用是将用户访问的URL地址分发到对应的应用或视图函数处理
"""
# 导入项目配置,用于获取静态资源、媒体文件路径等
from django.conf import settings
# 导入国际化URL配置工具支持多语言URL前缀如/en/、/zh-hans/
from django.conf.urls.i18n import i18n_patterns
# 导入静态资源URL配置工具用于开发环境下提供静态文件访问
from django.conf.urls.static import static
# 导入站点地图视图用于生成sitemap.xml
from django.contrib.sitemaps.views import sitemap
# 导入URL路径配置工具path用于固定路径re_path支持正则匹配include用于包含子应用URL
from django.urls import path, include, re_path
# 导入Haystack搜索视图工厂用于自定义搜索视图
from haystack.views import search_view_factory
# 导入自定义视图和配置博客搜索视图、自定义Admin站点、ElasticSearch搜索表单
from blog.views import EsSearchView
from djangoblog.admin_site import admin_site
from djangoblog.elasticsearch_backend import ElasticSearchModelSearchForm
# 导入RSS订阅Feed和站点地图类
from djangoblog.feeds import DjangoBlogFeed
from djangoblog.sitemap import (ArticleSiteMap, CategorySiteMap,
StaticViewSitemap, TagSiteMap, UserSiteMap)
# -------------------------- 站点地图配置 --------------------------
# 定义站点地图字典关联不同类型页面的Sitemap类用于生成sitemap.xml
sitemaps = {
'blog': ArticleSiteMap, # 文章页面的站点地图
'Category': CategorySiteMap, # 分类页面的站点地图
'Tag': TagSiteMap, # 标签页面的站点地图
'User': UserSiteMap, # 用户主页的站点地图
'static': StaticViewSitemap # 静态页面(如首页)的站点地图
}
# -------------------------- 自定义错误页面配置 --------------------------
# 配置404页面不存在错误对应的处理视图
handler404 = 'blog.views.page_not_found_view'
# 配置500服务器内部错误错误对应的处理视图
handler500 = 'blog.views.server_error_view'
# 配置403权限不足错误对应的处理视图
handle403 = 'blog.views.permission_denied_view'
# -------------------------- 基础URL配置 --------------------------
# 非国际化URL列表不随语言切换变化的URL
urlpatterns = [
# 国际化切换入口:提供语言选择功能(如切换中英文)
path('i18n/', include('django.conf.urls.i18n')),
]
# -------------------------- 国际化URL配置 --------------------------
# 国际化URL列表会自动添加语言前缀如/zh-hans/admin/、/en/admin/
# prefix_default_language=False默认语言如中文不添加语言前缀保持URL简洁
urlpatterns += i18n_patterns(
# 自定义Admin后台URL使用项目自定义的admin_site非Django默认Admin
re_path(r'^admin/', admin_site.urls),
# 博客核心功能URL包含文章列表、详情等命名空间为'blog'
re_path(r'', include('blog.urls', namespace='blog')),
# Markdown编辑器URL集成mdeditor插件的路由
re_path(r'mdeditor/', include('mdeditor.urls')),
# 评论功能URL包含评论提交、列表等命名空间为'comment'
re_path(r'', include('comments.urls', namespace='comment')),
# 用户账户功能URL包含登录、注册、个人中心等命名空间为'account'
re_path(r'', include('accounts.urls', namespace='account')),
# 第三方登录URL包含GitHub、微信等登录命名空间为'oauth'
re_path(r'', include('oauth.urls', namespace='oauth')),
# 站点地图URL生成sitemap.xml供搜索引擎抓取
re_path(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps},
name='django.contrib.sitemaps.views.sitemap'),
# RSS订阅URL提供两种路径/feed/和/rss/均指向DjangoBlogFeed
re_path(r'^feed/$', DjangoBlogFeed()),
re_path(r'^rss/$', DjangoBlogFeed()),
# 搜索功能URL使用ElasticSearch搜索视图和表单命名空间为'search'
re_path('^search', search_view_factory(
view_class=EsSearchView,
form_class=ElasticSearchModelSearchForm
), name='search'),
# 服务器管理功能URL包含系统监控等命名空间为'servermanager'
re_path(r'', include('servermanager.urls', namespace='servermanager')),
# 位置追踪功能URL集成owntracks的路由命名空间为'owntracks'
re_path(r'', include('owntracks.urls', namespace='owntracks')),
prefix_default_language=False # 默认语言URL不添加语言前缀
)
# -------------------------- 静态资源与媒体文件URL配置 --------------------------
# 开发环境下添加静态文件URL映射生产环境由Nginx/Apache处理
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
# DEBUG模式下开发环境添加媒体文件用户上传文件的URL映射
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)
Loading…
Cancel
Save