You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Django/doc/djangoblog/urls.py

73 lines
3.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

"""djangoblog URL 配置
`urlpatterns` 列表将 URL 路由到视图。更多信息请参阅:
https://docs.djangoproject.com/en/1.10/topics/http/urls/
示例:
函数视图
1. 导入: from my_app import views
2. 添加 URL 到 urlpatterns: url(r'^$', views.home, name='home')
基于类的视图
1. 导入: from other_app.views import Home
2. 添加 URL 到 urlpatterns: url(r'^$', Home.as_view(), name='home')
包含其他 URLconf
1. 导入 include() 函数: from django.conf.urls import url, include
2. 添加 URL 到 urlpatterns: url(r'^blog/', include('blog.urls'))
"""
from django.conf import settings
from django.conf.urls.i18n import i18n_patterns # 国际化URL模式
from django.conf.urls.static import static # 静态文件服务
from django.contrib.sitemaps.views import sitemap # 站点地图视图
from django.urls import path, include
from django.urls import re_path
from haystack.views import search_view_factory # Haystack搜索视图工厂
# 导入自定义视图和组件
from blog.views import EsSearchView
from djangoblog.admin_site import admin_site # 自定义管理员站点
from djangoblog.elasticsearch_backend import ElasticSearchModelSearchForm # Elasticsearch搜索表单
from djangoblog.feeds import DjangoBlogFeed # RSS订阅源
from djangoblog.sitemap import ArticleSiteMap, CategorySiteMap, StaticViewSitemap, TagSiteMap, UserSiteMap
# 站点地图配置字典
sitemaps = {
'blog': ArticleSiteMap, # 文章站点地图
'Category': CategorySiteMap, # 分类站点地图
'Tag': TagSiteMap, # 标签站点地图
'User': UserSiteMap, # 用户站点地图
'static': StaticViewSitemap # 静态页面站点地图
}
# 自定义错误处理视图
handler404 = 'blog.views.page_not_found_view' # 404页面未找到
handler500 = 'blog.views.server_error_view' # 500服务器错误
handle403 = 'blog.views.permission_denied_view' # 403权限拒绝
# 基本URL模式
urlpatterns = [
path('i18n/', include('django.conf.urls.i18n')), # 国际化URL
]
# 添加国际化URL模式
urlpatterns += i18n_patterns(
re_path(r'^admin/', admin_site.urls), # 自定义管理员后台URL
re_path(r'', include('blog.urls', namespace='blog')), # 博客应用URL
re_path(r'mdeditor/', include('mdeditor.urls')), # Markdown编辑器URL
re_path(r'', include('comments.urls', namespace='comment')), # 评论应用URL
re_path(r'', include('accounts.urls', namespace='account')), # 账户应用URL
re_path(r'', include('oauth.urls', namespace='oauth')), # OAuth认证URL
re_path(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps}, # 站点地图XML
name='django.contrib.sitemaps.views.sitemap'),
re_path(r'^feed/$', DjangoBlogFeed()), # RSS订阅源URL
re_path(r'^rss/$', DjangoBlogFeed()), # RSS订阅源别名
# 搜索URL使用自定义的Elasticsearch视图和表单
re_path('^search', search_view_factory(view_class=EsSearchView, form_class=ElasticSearchModelSearchForm),
name='search'),
re_path(r'', include('servermanager.urls', namespace='servermanager')), # 服务器管理URL
re_path(r'', include('owntracks.urls', namespace='owntracks')), # OwnTracks位置跟踪URL
prefix_default_language=False # 不在默认语言的URL前添加语言前缀
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) # 静态文件服务
# 调试模式下启用媒体文件服务
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)