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.
ReviewAndAnalyzeOpenSourceS.../doc/mermaid/graph_5.mmd

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 : 包含位置跟踪路由