--- config: layout: elk --- classDiagram %% 管理站点类 class DjangoBlogAdminSite { +site_header +site_title +has_permission() } %% 应用配置类 class DjangoblogAppConfig { +ready() } %% 信号处理器 class blog_signals { <> +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 { <> +baidu_notify() +notify() } %% 测试类 class DjangoBlogTest %% 工具类 class CommonMarkdown { <> +_convert_markdown() +get_markdown_with_toc() +get_markdown() } %% 设置类(配置) class settings { <> +INSTALLED_APPS +MIDDLEWARE +DATABASES +HAYSTACK_CONNECTIONS +CACHES +LOGGING } %% URL配置 class urls { <> +urlpatterns +handler404 +handler500 +handle403 } %% WSGI配置 class wsgi { <> +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 : 包含位置跟踪路由