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.
264 lines
6.2 KiB
264 lines
6.2 KiB
---
|
|
config:
|
|
layout: elk
|
|
---
|
|
classDiagram
|
|
%% 管理站点类
|
|
class DjangoBlogAdminSite {
|
|
+site_header
|
|
+site_title
|
|
+has_permission()
|
|
}
|
|
|
|
%% 应用配置类
|
|
class DjangoblogAppConfig {
|
|
+ready()
|
|
}
|
|
|
|
%% 信号处理器
|
|
class blog_signals {
|
|
<<module>>
|
|
+send_email_signal
|
|
+oauth_user_login_signal
|
|
+send_email_signal_handler()
|
|
+oauth_user_login_signal_handler()
|
|
+model_post_save_callback()
|
|
+user_auth_callback()
|
|
}
|
|
|
|
%% 搜索引擎相关类
|
|
class ElasticSearchBackend {
|
|
+manager
|
|
+search()
|
|
+get_suggestion()
|
|
+_create()
|
|
+_delete()
|
|
+_rebuild()
|
|
+update()
|
|
+remove()
|
|
+clear()
|
|
}
|
|
|
|
class ElasticSearchQuery {
|
|
+_convert_datetime()
|
|
+clean()
|
|
+build_query_fragment()
|
|
+get_count()
|
|
+get_spelling_suggestion()
|
|
}
|
|
|
|
class ElasticSearchModelSearchForm {
|
|
+search()
|
|
}
|
|
|
|
class ElasticSearchEngine
|
|
|
|
class WhooshSearchBackend {
|
|
+RESERVED_WORDS
|
|
+RESERVED_CHARACTERS
|
|
+setup()
|
|
+build_schema()
|
|
+update()
|
|
+remove()
|
|
+clear()
|
|
+delete_index()
|
|
+optimize()
|
|
+search()
|
|
+more_like_this()
|
|
+_process_results()
|
|
+create_spelling_suggestion()
|
|
}
|
|
|
|
class WhooshSearchQuery {
|
|
+_convert_datetime()
|
|
+clean()
|
|
+build_query_fragment()
|
|
}
|
|
|
|
class WhooshEngine
|
|
|
|
class WhooshHtmlFormatter {
|
|
+template
|
|
}
|
|
|
|
%% RSS订阅类
|
|
class DjangoBlogFeed {
|
|
+feed_type
|
|
+description
|
|
+title
|
|
+link
|
|
+author_name()
|
|
+author_link()
|
|
+items()
|
|
+item_title()
|
|
+item_description()
|
|
+feed_copyright()
|
|
+item_link()
|
|
+item_guid()
|
|
}
|
|
|
|
%% 日志管理类
|
|
class LogEntryAdmin {
|
|
+list_filter
|
|
+search_fields
|
|
+list_display
|
|
+has_add_permission()
|
|
+has_change_permission()
|
|
+has_delete_permission()
|
|
+object_link()
|
|
+user_link()
|
|
+get_queryset()
|
|
+get_actions()
|
|
}
|
|
|
|
%% 站点地图类
|
|
class StaticViewSitemap {
|
|
+priority
|
|
+changefreq
|
|
+items()
|
|
+location()
|
|
}
|
|
|
|
class ArticleSiteMap {
|
|
+changefreq
|
|
+priority
|
|
+items()
|
|
+lastmod()
|
|
}
|
|
|
|
class CategorySiteMap {
|
|
+changefreq
|
|
+priority
|
|
+items()
|
|
+lastmod()
|
|
}
|
|
|
|
class TagSiteMap {
|
|
+changefreq
|
|
+priority
|
|
+items()
|
|
+lastmod()
|
|
}
|
|
|
|
class UserSiteMap {
|
|
+changefreq
|
|
+priority
|
|
+items()
|
|
+lastmod()
|
|
}
|
|
|
|
%% 蜘蛛通知类
|
|
class SpiderNotify {
|
|
<<static>>
|
|
+baidu_notify()
|
|
+notify()
|
|
}
|
|
|
|
%% 测试类
|
|
class DjangoBlogTest
|
|
|
|
%% 工具类
|
|
class CommonMarkdown {
|
|
<<static>>
|
|
+_convert_markdown()
|
|
+get_markdown_with_toc()
|
|
+get_markdown()
|
|
}
|
|
|
|
%% 设置类(配置)
|
|
class settings {
|
|
<<module>>
|
|
+INSTALLED_APPS
|
|
+MIDDLEWARE
|
|
+DATABASES
|
|
+HAYSTACK_CONNECTIONS
|
|
+CACHES
|
|
+LOGGING
|
|
}
|
|
|
|
%% URL配置
|
|
class urls {
|
|
<<module>>
|
|
+urlpatterns
|
|
+handler404
|
|
+handler500
|
|
+handle403
|
|
}
|
|
|
|
%% WSGI配置
|
|
class wsgi {
|
|
<<module>>
|
|
+application
|
|
}
|
|
|
|
%% 继承关系
|
|
DjangoBlogAdminSite --|> AdminSite
|
|
DjangoblogAppConfig --|> AppConfig
|
|
ElasticSearchBackend --|> BaseSearchBackend
|
|
ElasticSearchQuery --|> BaseSearchQuery
|
|
ElasticSearchEngine --|> BaseEngine
|
|
WhooshSearchBackend --|> BaseSearchBackend
|
|
WhooshSearchQuery --|> BaseSearchQuery
|
|
WhooshEngine --|> BaseEngine
|
|
WhooshHtmlFormatter --|> HtmlFormatter
|
|
DjangoBlogFeed --|> Feed
|
|
LogEntryAdmin --|> ModelAdmin
|
|
StaticViewSitemap --|> Sitemap
|
|
ArticleSiteMap --|> Sitemap
|
|
CategorySiteMap --|> Sitemap
|
|
TagSiteMap --|> Sitemap
|
|
UserSiteMap --|> Sitemap
|
|
DjangoBlogTest --|> TestCase
|
|
|
|
%% 关联关系
|
|
DjangoBlogAdminSite --> ArticlelAdmin : 注册
|
|
DjangoBlogAdminSite --> CategoryAdmin : 注册
|
|
DjangoBlogAdminSite --> TagAdmin : 注册
|
|
DjangoBlogAdminSite --> LinksAdmin : 注册
|
|
DjangoBlogAdminSite --> SideBarAdmin : 注册
|
|
DjangoBlogAdminSite --> BlogSettingsAdmin : 注册
|
|
DjangoBlogAdminSite --> CommandsAdmin : 注册
|
|
DjangoBlogAdminSite --> EmailSendLogAdmin : 注册
|
|
DjangoBlogAdminSite --> BlogUserAdmin : 注册
|
|
DjangoBlogAdminSite --> CommentAdmin : 注册
|
|
DjangoBlogAdminSite --> OAuthUserAdmin : 注册
|
|
DjangoBlogAdminSite --> OAuthConfigAdmin : 注册
|
|
DjangoBlogAdminSite --> OwnTrackLogsAdmin : 注册
|
|
DjangoBlogAdminSite --> SiteAdmin : 注册
|
|
DjangoBlogAdminSite --> LogEntryAdmin : 注册
|
|
|
|
ElasticSearchBackend --> ArticleDocumentManager : 使用
|
|
ElasticSearchModelSearchForm --> ElasticSearchBackend : 配置
|
|
WhooshSearchBackend --> ChineseAnalyzer : 使用
|
|
|
|
blog_signals --> Comment : 信号处理
|
|
blog_signals --> OAuthUser : 信号处理
|
|
blog_signals --> LogEntry : 信号处理
|
|
blog_signals --> EmailSendLog : 记录
|
|
|
|
DjangoBlogFeed --> Article : 获取内容
|
|
ArticleSiteMap --> Article : 映射
|
|
CategorySiteMap --> Category : 映射
|
|
TagSiteMap --> Tag : 映射
|
|
UserSiteMap --> Article : 映射
|
|
|
|
%% 依赖关系
|
|
DjangoblogAppConfig ..> plugin_manage.loader : 导入
|
|
blog_signals ..> comments.utils : 导入
|
|
blog_signals ..> djangoblog.utils : 导入
|
|
blog_signals ..> djangoblog.spider_notify : 导入
|
|
ElasticSearchBackend ..> blog.documents : 导入
|
|
WhooshSearchBackend ..> jieba.analyse : 导入
|
|
utils ..> bleach : 导入
|
|
utils ..> markdown : 导入
|
|
|
|
%% 配置关系
|
|
settings --> INSTALLED_APPS : 包含所有应用
|
|
settings --> MIDDLEWARE : 包含中间件
|
|
urls --> admin_site : 包含管理路由
|
|
urls --> blog.urls : 包含博客路由
|
|
urls --> comments.urls : 包含评论路由
|
|
urls --> accounts.urls : 包含账户路由
|
|
urls --> oauth.urls : 包含OAuth路由
|
|
urls --> servermanager.urls : 包含服务器管理路由
|
|
urls --> owntracks.urls : 包含位置跟踪路由 |