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.
DjangoBlog/djangoblog/urls.py

76 lines
3.0 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.

#gq:
"""djangoblog URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.10/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
from django.conf import settings
from django.conf.urls.i18n import i18n_patterns
from django.conf.urls.static import static
from django.contrib.sitemaps.views import sitemap
from django.urls import path, include, re_path
from haystack.views import search_view_factory
from blog.views import EsSearchView
from djangoblog.admin_site import admin_site
from djangoblog.elasticsearch_backend import ElasticSearchModelSearchForm
from djangoblog.feeds import DjangoBlogFeed
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
urlpatterns = [
path('i18n/', include('django.conf.urls.i18n')), # 国际化
]
# 国际化URL多语言支持
urlpatterns += i18n_patterns(
re_path(r'^admin/', admin_site.urls), # 后台管理
re_path(r'', include('blog.urls', namespace='blog')), # 博客主体
re_path(r'mdeditor/', include('mdeditor.urls')), # Markdown编辑器
re_path(r'', include('comments.urls', namespace='comment')), # 评论
re_path(r'', include('accounts.urls', namespace='account')), # 账户
re_path(r'', include('oauth.urls', namespace='oauth')), # 第三方登录
re_path(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps}), # 站点地图
re_path(r'^feed/$', DjangoBlogFeed()), # RSS订阅
re_path(r'^rss/$', DjangoBlogFeed()), # RSS订阅(备用)
# Elasticsearch搜索
re_path('^search', search_view_factory(
view_class=EsSearchView,
form_class=ElasticSearchModelSearchForm
), name='search'),
re_path(r'', include('servermanager.urls', namespace='servermanager')), # 服务器管理
re_path(r'', include('owntracks.urls', namespace='owntracks')), # 位置跟踪
prefix_default_language=False
)
# 静态文件URL
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
# 开发环境媒体文件URL
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)