"""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)