feat: 修改页面样式及测试数据更新

develop
NJ 5 months ago
parent 574b9ce1f6
commit 24c9c96e2f

8
.idea/.gitignore vendored

@ -0,0 +1,8 @@
# 默认忽略的文件
/shelf/
/workspace.xml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="FacetManager">
<facet type="django" name="Django">
<configuration>
<option name="rootFolder" value="$MODULE_DIR$/src" />
<option name="settingsModule" value="settings.py" />
<option name="manageScript" value="$MODULE_DIR$/src/manage.py" />
<option name="environment" value="&lt;map/&gt;" />
<option name="doNotUseTestRunner" value="false" />
<option name="trackFilePattern" value="migrations" />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="jdk" jdkName="djangoBlog" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="PyDocumentationSettings">
<option name="format" value="PLAIN" />
<option name="myDocStringFormat" value="Plain" />
</component>
<component name="TemplatesService">
<option name="TEMPLATE_CONFIGURATION" value="Jinja2" />
<option name="TEMPLATE_FOLDERS">
<list>
<option value="$MODULE_DIR$/src/templates" />
</list>
</option>
</component>
</module>

@ -0,0 +1,37 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredPackages">
<value>
<list size="24">
<item index="0" class="java.lang.String" itemvalue="aiohttp" />
<item index="1" class="java.lang.String" itemvalue="requests" />
<item index="2" class="java.lang.String" itemvalue="websocket-client" />
<item index="3" class="java.lang.String" itemvalue="Flask" />
<item index="4" class="java.lang.String" itemvalue="fastapi" />
<item index="5" class="java.lang.String" itemvalue="pydantic" />
<item index="6" class="java.lang.String" itemvalue="scikit-learn" />
<item index="7" class="java.lang.String" itemvalue="starlette" />
<item index="8" class="java.lang.String" itemvalue="pillow" />
<item index="9" class="java.lang.String" itemvalue="torch" />
<item index="10" class="java.lang.String" itemvalue="numpy" />
<item index="11" class="java.lang.String" itemvalue="uvicorn" />
<item index="12" class="java.lang.String" itemvalue="torchvision" />
<item index="13" class="java.lang.String" itemvalue="transformers" />
<item index="14" class="java.lang.String" itemvalue="opencv-python" />
<item index="15" class="java.lang.String" itemvalue="sentencepiece" />
<item index="16" class="java.lang.String" itemvalue="python-dotenv" />
<item index="17" class="java.lang.String" itemvalue="flask" />
<item index="18" class="java.lang.String" itemvalue="Pillow" />
<item index="19" class="java.lang.String" itemvalue="ssl" />
<item index="20" class="java.lang.String" itemvalue="pandas" />
<item index="21" class="java.lang.String" itemvalue="scikit-image" />
<item index="22" class="java.lang.String" itemvalue="matplotlib" />
<item index="23" class="java.lang.String" itemvalue="argparse" />
</list>
</value>
</option>
</inspection_tool>
</profile>
</component>

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Black">
<option name="sdkName" value="djangoBlog" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="djangoBlog" project-jdk-type="Python SDK" />
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/djangoBlog.iml" filepath="$PROJECT_DIR$/.idea/djangoBlog.iml" />
</modules>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

@ -0,0 +1,703 @@
/*
Navicat Premium Data Transfer
Source Server : localhost_3306
Source Server Type : MySQL
Source Server Version : 80012 (8.0.12)
Source Host : localhost:3306
Source Schema : djangoblog
Target Server Type : MySQL
Target Server Version : 80012 (8.0.12)
File Encoding : 65001
Date: 06/10/2025 16:31:34
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for accounts_bloguser
-- ----------------------------
DROP TABLE IF EXISTS `accounts_bloguser`;
CREATE TABLE `accounts_bloguser` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`password` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`last_login` datetime(6) NULL DEFAULT NULL,
`is_superuser` tinyint(1) NOT NULL,
`username` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`first_name` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`last_name` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`email` varchar(254) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`is_staff` tinyint(1) NOT NULL,
`is_active` tinyint(1) NOT NULL,
`date_joined` datetime(6) NOT NULL,
`nickname` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`source` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`creation_time` datetime(6) NOT NULL,
`last_modify_time` datetime(6) NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `username`(`username`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of accounts_bloguser
-- ----------------------------
INSERT INTO `accounts_bloguser` VALUES (1, 'pbkdf2_sha256$1000000$3kPtwC1rzKfdxAdVzy2lQ0$uuacWZgCrLjG7PhxUdIUXgVkXbUUw4Y9oS+NuAlvF+c=', '2025-10-06 15:18:37.640743', 1, 'nj140', '', '', '123@abc.com', 1, 1, '2025-09-10 20:21:37.484432', '', '', '2025-09-10 20:21:37.484432', '2025-09-10 20:21:37.484432');
INSERT INTO `accounts_bloguser` VALUES (2, 'pbkdf2_sha256$1000000$xuZYOJn74XQWCEy8PpEw41$AVgECQISFv7Fo4/DDrb8EXS4zQnN4bdTxAnDWNbuTYU=', NULL, 0, '测试用户', '', '', 'test@test.com', 0, 1, '2025-09-10 20:22:52.608486', '', '', '2025-09-10 20:22:52.608486', '2025-09-10 20:22:52.608486');
-- ----------------------------
-- Table structure for accounts_bloguser_groups
-- ----------------------------
DROP TABLE IF EXISTS `accounts_bloguser_groups`;
CREATE TABLE `accounts_bloguser_groups` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`bloguser_id` bigint(20) NOT NULL,
`group_id` int(11) NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `accounts_bloguser_groups_bloguser_id_group_id_fc37e89b_uniq`(`bloguser_id`, `group_id`) USING BTREE,
INDEX `accounts_bloguser_groups_bloguser_id_a16ccbb7`(`bloguser_id`) USING BTREE,
INDEX `accounts_bloguser_groups_group_id_98d76804`(`group_id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Fixed;
-- ----------------------------
-- Records of accounts_bloguser_groups
-- ----------------------------
-- ----------------------------
-- Table structure for accounts_bloguser_user_permissions
-- ----------------------------
DROP TABLE IF EXISTS `accounts_bloguser_user_permissions`;
CREATE TABLE `accounts_bloguser_user_permissions` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`bloguser_id` bigint(20) NOT NULL,
`permission_id` int(11) NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `accounts_bloguser_user_p_bloguser_id_permission_i_14808777_uniq`(`bloguser_id`, `permission_id`) USING BTREE,
INDEX `accounts_bloguser_user_permissions_bloguser_id_7e1b5742`(`bloguser_id`) USING BTREE,
INDEX `accounts_bloguser_user_permissions_permission_id_ae5159b9`(`permission_id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Fixed;
-- ----------------------------
-- Records of accounts_bloguser_user_permissions
-- ----------------------------
-- ----------------------------
-- Table structure for auth_group
-- ----------------------------
DROP TABLE IF EXISTS `auth_group`;
CREATE TABLE `auth_group` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `name`(`name`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of auth_group
-- ----------------------------
-- ----------------------------
-- Table structure for auth_group_permissions
-- ----------------------------
DROP TABLE IF EXISTS `auth_group_permissions`;
CREATE TABLE `auth_group_permissions` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`group_id` int(11) NOT NULL,
`permission_id` int(11) NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `auth_group_permissions_group_id_permission_id_0cd325b0_uniq`(`group_id`, `permission_id`) USING BTREE,
INDEX `auth_group_permissions_group_id_b120cbf9`(`group_id`) USING BTREE,
INDEX `auth_group_permissions_permission_id_84c5c92e`(`permission_id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Fixed;
-- ----------------------------
-- Records of auth_group_permissions
-- ----------------------------
-- ----------------------------
-- Table structure for auth_permission
-- ----------------------------
DROP TABLE IF EXISTS `auth_permission`;
CREATE TABLE `auth_permission` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`content_type_id` int(11) NOT NULL,
`codename` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `auth_permission_content_type_id_codename_01ab375a_uniq`(`content_type_id`, `codename`) USING BTREE,
INDEX `auth_permission_content_type_id_2f476e4b`(`content_type_id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 77 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of auth_permission
-- ----------------------------
INSERT INTO `auth_permission` VALUES (1, 'Can add log entry', 1, 'add_logentry');
INSERT INTO `auth_permission` VALUES (2, 'Can change log entry', 1, 'change_logentry');
INSERT INTO `auth_permission` VALUES (3, 'Can delete log entry', 1, 'delete_logentry');
INSERT INTO `auth_permission` VALUES (4, 'Can view log entry', 1, 'view_logentry');
INSERT INTO `auth_permission` VALUES (5, 'Can add permission', 2, 'add_permission');
INSERT INTO `auth_permission` VALUES (6, 'Can change permission', 2, 'change_permission');
INSERT INTO `auth_permission` VALUES (7, 'Can delete permission', 2, 'delete_permission');
INSERT INTO `auth_permission` VALUES (8, 'Can view permission', 2, 'view_permission');
INSERT INTO `auth_permission` VALUES (9, 'Can add group', 3, 'add_group');
INSERT INTO `auth_permission` VALUES (10, 'Can change group', 3, 'change_group');
INSERT INTO `auth_permission` VALUES (11, 'Can delete group', 3, 'delete_group');
INSERT INTO `auth_permission` VALUES (12, 'Can view group', 3, 'view_group');
INSERT INTO `auth_permission` VALUES (13, 'Can add content type', 4, 'add_contenttype');
INSERT INTO `auth_permission` VALUES (14, 'Can change content type', 4, 'change_contenttype');
INSERT INTO `auth_permission` VALUES (15, 'Can delete content type', 4, 'delete_contenttype');
INSERT INTO `auth_permission` VALUES (16, 'Can view content type', 4, 'view_contenttype');
INSERT INTO `auth_permission` VALUES (17, 'Can add session', 5, 'add_session');
INSERT INTO `auth_permission` VALUES (18, 'Can change session', 5, 'change_session');
INSERT INTO `auth_permission` VALUES (19, 'Can delete session', 5, 'delete_session');
INSERT INTO `auth_permission` VALUES (20, 'Can view session', 5, 'view_session');
INSERT INTO `auth_permission` VALUES (21, 'Can add site', 6, 'add_site');
INSERT INTO `auth_permission` VALUES (22, 'Can change site', 6, 'change_site');
INSERT INTO `auth_permission` VALUES (23, 'Can delete site', 6, 'delete_site');
INSERT INTO `auth_permission` VALUES (24, 'Can view site', 6, 'view_site');
INSERT INTO `auth_permission` VALUES (25, 'Can add Website configuration', 7, 'add_blogsettings');
INSERT INTO `auth_permission` VALUES (26, 'Can change Website configuration', 7, 'change_blogsettings');
INSERT INTO `auth_permission` VALUES (27, 'Can delete Website configuration', 7, 'delete_blogsettings');
INSERT INTO `auth_permission` VALUES (28, 'Can view Website configuration', 7, 'view_blogsettings');
INSERT INTO `auth_permission` VALUES (29, 'Can add link', 8, 'add_links');
INSERT INTO `auth_permission` VALUES (30, 'Can change link', 8, 'change_links');
INSERT INTO `auth_permission` VALUES (31, 'Can delete link', 8, 'delete_links');
INSERT INTO `auth_permission` VALUES (32, 'Can view link', 8, 'view_links');
INSERT INTO `auth_permission` VALUES (33, 'Can add sidebar', 9, 'add_sidebar');
INSERT INTO `auth_permission` VALUES (34, 'Can change sidebar', 9, 'change_sidebar');
INSERT INTO `auth_permission` VALUES (35, 'Can delete sidebar', 9, 'delete_sidebar');
INSERT INTO `auth_permission` VALUES (36, 'Can view sidebar', 9, 'view_sidebar');
INSERT INTO `auth_permission` VALUES (37, 'Can add tag', 10, 'add_tag');
INSERT INTO `auth_permission` VALUES (38, 'Can change tag', 10, 'change_tag');
INSERT INTO `auth_permission` VALUES (39, 'Can delete tag', 10, 'delete_tag');
INSERT INTO `auth_permission` VALUES (40, 'Can view tag', 10, 'view_tag');
INSERT INTO `auth_permission` VALUES (41, 'Can add category', 11, 'add_category');
INSERT INTO `auth_permission` VALUES (42, 'Can change category', 11, 'change_category');
INSERT INTO `auth_permission` VALUES (43, 'Can delete category', 11, 'delete_category');
INSERT INTO `auth_permission` VALUES (44, 'Can view category', 11, 'view_category');
INSERT INTO `auth_permission` VALUES (45, 'Can add article', 12, 'add_article');
INSERT INTO `auth_permission` VALUES (46, 'Can change article', 12, 'change_article');
INSERT INTO `auth_permission` VALUES (47, 'Can delete article', 12, 'delete_article');
INSERT INTO `auth_permission` VALUES (48, 'Can view article', 12, 'view_article');
INSERT INTO `auth_permission` VALUES (49, 'Can add user', 13, 'add_bloguser');
INSERT INTO `auth_permission` VALUES (50, 'Can change user', 13, 'change_bloguser');
INSERT INTO `auth_permission` VALUES (51, 'Can delete user', 13, 'delete_bloguser');
INSERT INTO `auth_permission` VALUES (52, 'Can view user', 13, 'view_bloguser');
INSERT INTO `auth_permission` VALUES (53, 'Can add comment', 14, 'add_comment');
INSERT INTO `auth_permission` VALUES (54, 'Can change comment', 14, 'change_comment');
INSERT INTO `auth_permission` VALUES (55, 'Can delete comment', 14, 'delete_comment');
INSERT INTO `auth_permission` VALUES (56, 'Can view comment', 14, 'view_comment');
INSERT INTO `auth_permission` VALUES (57, 'Can add oauth配置', 15, 'add_oauthconfig');
INSERT INTO `auth_permission` VALUES (58, 'Can change oauth配置', 15, 'change_oauthconfig');
INSERT INTO `auth_permission` VALUES (59, 'Can delete oauth配置', 15, 'delete_oauthconfig');
INSERT INTO `auth_permission` VALUES (60, 'Can view oauth配置', 15, 'view_oauthconfig');
INSERT INTO `auth_permission` VALUES (61, 'Can add oauth user', 16, 'add_oauthuser');
INSERT INTO `auth_permission` VALUES (62, 'Can change oauth user', 16, 'change_oauthuser');
INSERT INTO `auth_permission` VALUES (63, 'Can delete oauth user', 16, 'delete_oauthuser');
INSERT INTO `auth_permission` VALUES (64, 'Can view oauth user', 16, 'view_oauthuser');
INSERT INTO `auth_permission` VALUES (65, 'Can add 命令', 17, 'add_commands');
INSERT INTO `auth_permission` VALUES (66, 'Can change 命令', 17, 'change_commands');
INSERT INTO `auth_permission` VALUES (67, 'Can delete 命令', 17, 'delete_commands');
INSERT INTO `auth_permission` VALUES (68, 'Can view 命令', 17, 'view_commands');
INSERT INTO `auth_permission` VALUES (69, 'Can add 邮件发送log', 18, 'add_emailsendlog');
INSERT INTO `auth_permission` VALUES (70, 'Can change 邮件发送log', 18, 'change_emailsendlog');
INSERT INTO `auth_permission` VALUES (71, 'Can delete 邮件发送log', 18, 'delete_emailsendlog');
INSERT INTO `auth_permission` VALUES (72, 'Can view 邮件发送log', 18, 'view_emailsendlog');
INSERT INTO `auth_permission` VALUES (73, 'Can add OwnTrackLogs', 19, 'add_owntracklog');
INSERT INTO `auth_permission` VALUES (74, 'Can change OwnTrackLogs', 19, 'change_owntracklog');
INSERT INTO `auth_permission` VALUES (75, 'Can delete OwnTrackLogs', 19, 'delete_owntracklog');
INSERT INTO `auth_permission` VALUES (76, 'Can view OwnTrackLogs', 19, 'view_owntracklog');
-- ----------------------------
-- Table structure for blog_article
-- ----------------------------
DROP TABLE IF EXISTS `blog_article`;
CREATE TABLE `blog_article` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`body` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`pub_time` datetime(6) NOT NULL,
`status` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`comment_status` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`type` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`views` int(10) UNSIGNED NOT NULL,
`article_order` int(11) NOT NULL,
`show_toc` tinyint(1) NOT NULL,
`author_id` bigint(20) NOT NULL,
`category_id` int(11) NOT NULL,
`creation_time` datetime(6) NOT NULL,
`last_modify_time` datetime(6) NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `title`(`title`) USING BTREE,
INDEX `blog_article_author_id_905add38`(`author_id`) USING BTREE,
INDEX `blog_article_category_id_7e38f15e`(`category_id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 11 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of blog_article
-- ----------------------------
INSERT INTO `blog_article` VALUES (1, '利用 Django REST Framework 快速搭建一个AI绘画的API接口', '在这篇详细的教程中我们将一步步学习如何结合强大的Django REST Framework和AI绘画模型构建一个高性能、可扩展的API服务。内容涵盖环境搭建、模型封装、API视图编写以及安全认证。', '2025-10-06 14:38:45.000000', 'p', 'o', 'a', 164, 0, 1, 1, 1, '2025-10-06 14:38:45.000000', '2025-10-06 14:38:45.000000');
INSERT INTO `blog_article` VALUES (2, 'AIGC 革命:我是如何用 LangChain 连接 GPT-4 构建自动化内容生成系统的', '探索AIGC的无限可能本文将分享一个完整的项目实战案例介绍如何使用LangChain作为粘合剂将大语言模型如GPT-4的能力与外部数据源和工具结合实现一个强大的自动化内容创作与摘要系统。', '2025-10-06 14:38:45.000000', 'p', 'o', 'a', 235, 0, 1, 1, 3, '2025-10-06 14:38:45.000000', '2025-10-06 14:38:45.000000');
INSERT INTO `blog_article` VALUES (3, '从零到一Docker 化 Django 项目的保姆级教程', '容器化是现代应用部署的基石。本文将以这个Django Blog项目为例从编写Dockerfile到使用docker-compose编排服务手把手教你如何将一个Django应用及其依赖如MySQL, Redis进行Docker化实现一键部署。', '2025-10-06 14:38:45.000000', 'p', 'o', 'a', 302, 0, 1, 1, 4, '2025-10-06 14:38:45.000000', '2025-10-06 14:38:45.000000');
INSERT INTO `blog_article` VALUES (4, 'React Hooks 全方位解析:从 useState 到自定义 Hooks', '你真的理解React Hooks吗本文将深入剖析Hooks的工作原理不仅会详细讲解useState、useEffect等常用Hooks的最佳实践还会带你编写一个实用的自定义Hook彻底提升你的React开发水平。', '2025-10-06 14:38:45.000000', 'p', 'o', 'a', 189, 0, 1, 2, 2, '2025-10-06 14:38:45.000000', '2025-10-06 14:38:45.000000');
INSERT INTO `blog_article` VALUES (5, '万字长文深入浅出Kubernetes核心概念', 'KubernetesK8s是云原生时代的操作系统但其学习曲线也相对陡峭。本文旨在用最通俗易懂的语言为你系统性地讲解Pod、Service、Deployment、StatefulSet等核心概念为你掌握K8s打下坚实的基础。', '2025-10-06 14:38:45.000000', 'p', 'o', 'a', 512, 0, 1, 1, 4, '2025-10-06 14:38:45.000000', '2025-10-06 14:38:45.000000');
INSERT INTO `blog_article` VALUES (6, 'MySQL索引优化艺术从B+树到高性能SQL查询', '一个慢查询足以拖垮整个应用。本文将从MySQL索引的底层数据结构B+树讲起深入分析如何创建高效的索引、避免索引失效的常见“坑”并提供一套切实可行的SQL性能优化方案。', '2025-10-06 14:38:45.000000', 'p', 'o', 'a', 421, 0, 1, 1, 1, '2025-10-06 14:38:45.000000', '2025-10-06 14:38:45.000000');
INSERT INTO `blog_article` VALUES (7, 'Vue 3 对比 React 182025年的前端框架之争', '前端框架选型是每个项目开始时的重要决策。本文将从性能Composition API vs Hooks、生态、社区支持以及开发体验等多个维度对当今最主流的两大框架Vue 3和React 18进行一次全面的横向评测。', '2025-10-06 14:38:45.000000', 'p', 'o', 'a', 632, 0, 0, 2, 2, '2025-10-06 14:38:45.000000', '2025-10-06 14:38:45.000000');
INSERT INTO `blog_article` VALUES (8, '实战指南使用LoRA技术微调你自己的大语言模型', '想让大模型更懂你的业务微调是关键。本文将提供一份详细的实战指南教你如何使用高效的LoRALow-Rank Adaptation技术在消费级显卡上对开源大语言模型如Llama 2进行微调打造专属的AI助手。', '2025-10-06 14:38:45.000000', 'p', 'o', 'a', 398, 0, 1, 1, 3, '2025-10-06 14:38:45.000000', '2025-10-06 14:38:45.000000');
INSERT INTO `blog_article` VALUES (9, '使用 GitHub Actions 为你的 Python 项目打造一条优雅的 CI/CD 流水线', '自动化是提升软件质量和交付效率的核心。本文将通过一个真实的Python项目案例展示如何利用GitHub Actions实现从代码提交、自动化测试、构建Docker镜像到部署的全流程CI/CD自动化。', '2025-10-06 14:38:45.000000', 'p', 'o', 'a', 277, 0, 1, 2, 4, '2025-10-06 14:38:45.000000', '2025-10-06 14:38:45.000000');
INSERT INTO `blog_article` VALUES (10, '技术人如何打破职业瓶颈?我的三点思考', '当工作了3-5年后很多技术同学会感到迷茫。本文不谈具体的代码只结合我个人的经历分享关于技术深度、业务理解和软技能三个方面的思考希望能帮助你找到突破职业瓶颈的方向。', '2025-10-06 14:38:45.000000', 'p', 'o', 'a', 712, 0, 0, 1, 7, '2025-10-06 14:38:45.000000', '2025-10-06 14:38:45.000000');
-- ----------------------------
-- Table structure for blog_article_tags
-- ----------------------------
DROP TABLE IF EXISTS `blog_article_tags`;
CREATE TABLE `blog_article_tags` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`article_id` int(11) NOT NULL,
`tag_id` int(11) NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `blog_article_tags_article_id_tag_id_b78a22e9_uniq`(`article_id`, `tag_id`) USING BTREE,
INDEX `blog_article_tags_article_id_82c02dd6`(`article_id`) USING BTREE,
INDEX `blog_article_tags_tag_id_88eb3ed9`(`tag_id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 31 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Fixed;
-- ----------------------------
-- Records of blog_article_tags
-- ----------------------------
INSERT INTO `blog_article_tags` VALUES (1, 1, 1);
INSERT INTO `blog_article_tags` VALUES (2, 1, 2);
INSERT INTO `blog_article_tags` VALUES (3, 1, 3);
INSERT INTO `blog_article_tags` VALUES (4, 1, 8);
INSERT INTO `blog_article_tags` VALUES (5, 1, 10);
INSERT INTO `blog_article_tags` VALUES (6, 2, 1);
INSERT INTO `blog_article_tags` VALUES (7, 2, 3);
INSERT INTO `blog_article_tags` VALUES (8, 2, 9);
INSERT INTO `blog_article_tags` VALUES (9, 3, 1);
INSERT INTO `blog_article_tags` VALUES (10, 3, 2);
INSERT INTO `blog_article_tags` VALUES (11, 3, 4);
INSERT INTO `blog_article_tags` VALUES (12, 3, 10);
INSERT INTO `blog_article_tags` VALUES (13, 3, 12);
INSERT INTO `blog_article_tags` VALUES (14, 4, 6);
INSERT INTO `blog_article_tags` VALUES (15, 4, 10);
INSERT INTO `blog_article_tags` VALUES (16, 5, 4);
INSERT INTO `blog_article_tags` VALUES (17, 5, 5);
INSERT INTO `blog_article_tags` VALUES (18, 5, 11);
INSERT INTO `blog_article_tags` VALUES (19, 6, 13);
INSERT INTO `blog_article_tags` VALUES (20, 6, 10);
INSERT INTO `blog_article_tags` VALUES (21, 7, 6);
INSERT INTO `blog_article_tags` VALUES (22, 7, 7);
INSERT INTO `blog_article_tags` VALUES (23, 8, 1);
INSERT INTO `blog_article_tags` VALUES (24, 8, 3);
INSERT INTO `blog_article_tags` VALUES (25, 8, 9);
INSERT INTO `blog_article_tags` VALUES (26, 8, 10);
INSERT INTO `blog_article_tags` VALUES (27, 9, 1);
INSERT INTO `blog_article_tags` VALUES (28, 9, 4);
INSERT INTO `blog_article_tags` VALUES (29, 9, 10);
INSERT INTO `blog_article_tags` VALUES (30, 10, 14);
-- ----------------------------
-- Table structure for blog_blogsettings
-- ----------------------------
DROP TABLE IF EXISTS `blog_blogsettings`;
CREATE TABLE `blog_blogsettings` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`site_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`site_description` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`site_seo_description` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`site_keywords` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`article_sub_length` int(11) NOT NULL,
`sidebar_article_count` int(11) NOT NULL,
`sidebar_comment_count` int(11) NOT NULL,
`article_comment_count` int(11) NOT NULL,
`show_google_adsense` tinyint(1) NOT NULL,
`google_adsense_codes` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL,
`open_site_comment` tinyint(1) NOT NULL,
`beian_code` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`analytics_code` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`show_gongan_code` tinyint(1) NOT NULL,
`gongan_beiancode` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL,
`global_footer` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL,
`global_header` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL,
`comment_need_review` tinyint(1) NOT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of blog_blogsettings
-- ----------------------------
INSERT INTO `blog_blogsettings` VALUES (1, 'djangoblog', '基于Django的博客系统', '基于Django的博客系统', 'Django,Python', 300, 10, 5, 5, 0, '', 1, '', '', 0, '', '', '', 0);
-- ----------------------------
-- Table structure for blog_category
-- ----------------------------
DROP TABLE IF EXISTS `blog_category`;
CREATE TABLE `blog_category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`slug` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`index` int(11) NOT NULL,
`parent_category_id` int(11) NULL DEFAULT NULL,
`creation_time` datetime(6) NOT NULL,
`last_modify_time` datetime(6) NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `name`(`name`) USING BTREE,
INDEX `blog_category_slug_92643dc5`(`slug`) USING BTREE,
INDEX `blog_category_parent_category_id_f50c3c0c`(`parent_category_id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of blog_category
-- ----------------------------
INSERT INTO `blog_category` VALUES (1, '后端开发', 'backend-development', 10, NULL, '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
INSERT INTO `blog_category` VALUES (2, '前端技术', 'frontend-technology', 20, NULL, '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
INSERT INTO `blog_category` VALUES (3, 'AI 与机器学习', 'ai-machine-learning', 30, NULL, '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
INSERT INTO `blog_category` VALUES (4, '云原生与DevOps', 'cloud-native-devops', 40, NULL, '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
INSERT INTO `blog_category` VALUES (5, '项目实战', 'project-showcase', 50, NULL, '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
INSERT INTO `blog_category` VALUES (6, '技术视野', 'tech-horizon', 60, NULL, '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
INSERT INTO `blog_category` VALUES (7, '职业发展', 'career-development', 70, NULL, '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
-- ----------------------------
-- Table structure for blog_links
-- ----------------------------
DROP TABLE IF EXISTS `blog_links`;
CREATE TABLE `blog_links` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`link` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`sequence` int(11) NOT NULL,
`is_enable` tinyint(1) NOT NULL,
`show_type` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`last_mod_time` datetime(6) NOT NULL,
`creation_time` datetime(6) NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `name`(`name`) USING BTREE,
UNIQUE INDEX `sequence`(`sequence`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of blog_links
-- ----------------------------
-- ----------------------------
-- Table structure for blog_sidebar
-- ----------------------------
DROP TABLE IF EXISTS `blog_sidebar`;
CREATE TABLE `blog_sidebar` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`sequence` int(11) NOT NULL,
`is_enable` tinyint(1) NOT NULL,
`last_mod_time` datetime(6) NOT NULL,
`creation_time` datetime(6) NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `sequence`(`sequence`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of blog_sidebar
-- ----------------------------
-- ----------------------------
-- Table structure for blog_tag
-- ----------------------------
DROP TABLE IF EXISTS `blog_tag`;
CREATE TABLE `blog_tag` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`slug` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`creation_time` datetime(6) NOT NULL,
`last_modify_time` datetime(6) NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `name`(`name`) USING BTREE,
INDEX `blog_tag_slug_01068d0e`(`slug`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 15 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of blog_tag
-- ----------------------------
INSERT INTO `blog_tag` VALUES (1, 'Python', 'python', '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
INSERT INTO `blog_tag` VALUES (2, 'Django', 'django', '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
INSERT INTO `blog_tag` VALUES (3, 'AIGC', 'aigc', '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
INSERT INTO `blog_tag` VALUES (4, 'Docker', 'docker', '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
INSERT INTO `blog_tag` VALUES (5, 'Kubernetes', 'kubernetes', '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
INSERT INTO `blog_tag` VALUES (6, 'React', 'react', '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
INSERT INTO `blog_tag` VALUES (7, 'Vue.js', 'vuejs', '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
INSERT INTO `blog_tag` VALUES (8, 'RESTful API', 'restful-api', '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
INSERT INTO `blog_tag` VALUES (9, 'LLM', 'llm', '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
INSERT INTO `blog_tag` VALUES (10, '教程', 'tutorial', '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
INSERT INTO `blog_tag` VALUES (11, '源码分析', 'source-code-analysis', '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
INSERT INTO `blog_tag` VALUES (12, '踩坑记录', 'troubleshooting', '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
INSERT INTO `blog_tag` VALUES (13, '性能优化', 'performance-optimization', '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
INSERT INTO `blog_tag` VALUES (14, '面试', 'interview', '2025-10-06 14:33:33.000000', '2025-10-06 14:33:33.000000');
-- ----------------------------
-- Table structure for comments_comment
-- ----------------------------
DROP TABLE IF EXISTS `comments_comment`;
CREATE TABLE `comments_comment` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`body` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`is_enable` tinyint(1) NOT NULL,
`article_id` int(11) NOT NULL,
`author_id` bigint(20) NOT NULL,
`parent_comment_id` bigint(20) NULL DEFAULT NULL,
`creation_time` datetime(6) NOT NULL,
`last_modify_time` datetime(6) NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `comments_comment_article_id_94fe60a2`(`article_id`) USING BTREE,
INDEX `comments_comment_author_id_334ce9e2`(`author_id`) USING BTREE,
INDEX `comments_comment_parent_comment_id_71289d4a`(`parent_comment_id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of comments_comment
-- ----------------------------
INSERT INTO `comments_comment` VALUES (1, '测试评论1', 1, 1, 1, NULL, '2025-10-06 16:26:04.268649', '2025-10-06 16:26:04.268649');
-- ----------------------------
-- Table structure for django_admin_log
-- ----------------------------
DROP TABLE IF EXISTS `django_admin_log`;
CREATE TABLE `django_admin_log` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`action_time` datetime(6) NOT NULL,
`object_id` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL,
`object_repr` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`action_flag` smallint(5) UNSIGNED NOT NULL,
`change_message` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`content_type_id` int(11) NULL DEFAULT NULL,
`user_id` bigint(20) NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `django_admin_log_content_type_id_c4bce8eb`(`content_type_id`) USING BTREE,
INDEX `django_admin_log_user_id_c564eba6`(`user_id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of django_admin_log
-- ----------------------------
-- ----------------------------
-- Table structure for django_content_type
-- ----------------------------
DROP TABLE IF EXISTS `django_content_type`;
CREATE TABLE `django_content_type` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`app_label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`model` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `django_content_type_app_label_model_76bd3d3b_uniq`(`app_label`, `model`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 20 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of django_content_type
-- ----------------------------
INSERT INTO `django_content_type` VALUES (1, 'admin', 'logentry');
INSERT INTO `django_content_type` VALUES (2, 'auth', 'permission');
INSERT INTO `django_content_type` VALUES (3, 'auth', 'group');
INSERT INTO `django_content_type` VALUES (4, 'contenttypes', 'contenttype');
INSERT INTO `django_content_type` VALUES (5, 'sessions', 'session');
INSERT INTO `django_content_type` VALUES (6, 'sites', 'site');
INSERT INTO `django_content_type` VALUES (7, 'blog', 'blogsettings');
INSERT INTO `django_content_type` VALUES (8, 'blog', 'links');
INSERT INTO `django_content_type` VALUES (9, 'blog', 'sidebar');
INSERT INTO `django_content_type` VALUES (10, 'blog', 'tag');
INSERT INTO `django_content_type` VALUES (11, 'blog', 'category');
INSERT INTO `django_content_type` VALUES (12, 'blog', 'article');
INSERT INTO `django_content_type` VALUES (13, 'accounts', 'bloguser');
INSERT INTO `django_content_type` VALUES (14, 'comments', 'comment');
INSERT INTO `django_content_type` VALUES (15, 'oauth', 'oauthconfig');
INSERT INTO `django_content_type` VALUES (16, 'oauth', 'oauthuser');
INSERT INTO `django_content_type` VALUES (17, 'servermanager', 'commands');
INSERT INTO `django_content_type` VALUES (18, 'servermanager', 'emailsendlog');
INSERT INTO `django_content_type` VALUES (19, 'owntracks', 'owntracklog');
-- ----------------------------
-- Table structure for django_migrations
-- ----------------------------
DROP TABLE IF EXISTS `django_migrations`;
CREATE TABLE `django_migrations` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`app` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`applied` datetime(6) NOT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 39 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of django_migrations
-- ----------------------------
INSERT INTO `django_migrations` VALUES (1, 'contenttypes', '0001_initial', '2025-09-10 20:20:07.085024');
INSERT INTO `django_migrations` VALUES (2, 'contenttypes', '0002_remove_content_type_name', '2025-09-10 20:20:07.268580');
INSERT INTO `django_migrations` VALUES (3, 'auth', '0001_initial', '2025-09-10 20:20:07.843315');
INSERT INTO `django_migrations` VALUES (4, 'auth', '0002_alter_permission_name_max_length', '2025-09-10 20:20:07.922870');
INSERT INTO `django_migrations` VALUES (5, 'auth', '0003_alter_user_email_max_length', '2025-09-10 20:20:07.930740');
INSERT INTO `django_migrations` VALUES (6, 'auth', '0004_alter_user_username_opts', '2025-09-10 20:20:07.938564');
INSERT INTO `django_migrations` VALUES (7, 'auth', '0005_alter_user_last_login_null', '2025-09-10 20:20:07.946608');
INSERT INTO `django_migrations` VALUES (8, 'auth', '0006_require_contenttypes_0002', '2025-09-10 20:20:07.950609');
INSERT INTO `django_migrations` VALUES (9, 'auth', '0007_alter_validators_add_error_messages', '2025-09-10 20:20:07.958108');
INSERT INTO `django_migrations` VALUES (10, 'auth', '0008_alter_user_username_max_length', '2025-09-10 20:20:07.966887');
INSERT INTO `django_migrations` VALUES (11, 'auth', '0009_alter_user_last_name_max_length', '2025-09-10 20:20:07.975361');
INSERT INTO `django_migrations` VALUES (12, 'auth', '0010_alter_group_name_max_length', '2025-09-10 20:20:08.045732');
INSERT INTO `django_migrations` VALUES (13, 'auth', '0011_update_proxy_permissions', '2025-09-10 20:20:08.060302');
INSERT INTO `django_migrations` VALUES (14, 'auth', '0012_alter_user_first_name_max_length', '2025-09-10 20:20:08.067708');
INSERT INTO `django_migrations` VALUES (15, 'accounts', '0001_initial', '2025-09-10 20:20:08.762715');
INSERT INTO `django_migrations` VALUES (16, 'accounts', '0002_alter_bloguser_options_remove_bloguser_created_time_and_more', '2025-09-10 20:20:09.150861');
INSERT INTO `django_migrations` VALUES (17, 'admin', '0001_initial', '2025-09-10 20:20:09.449364');
INSERT INTO `django_migrations` VALUES (18, 'admin', '0002_logentry_remove_auto_add', '2025-09-10 20:20:09.461312');
INSERT INTO `django_migrations` VALUES (19, 'admin', '0003_logentry_add_action_flag_choices', '2025-09-10 20:20:09.473800');
INSERT INTO `django_migrations` VALUES (20, 'blog', '0001_initial', '2025-09-10 20:20:10.518659');
INSERT INTO `django_migrations` VALUES (21, 'blog', '0002_blogsettings_global_footer_and_more', '2025-09-10 20:20:10.677950');
INSERT INTO `django_migrations` VALUES (22, 'blog', '0003_blogsettings_comment_need_review', '2025-09-10 20:20:10.783562');
INSERT INTO `django_migrations` VALUES (23, 'blog', '0004_rename_analyticscode_blogsettings_analytics_code_and_more', '2025-09-10 20:20:10.925352');
INSERT INTO `django_migrations` VALUES (24, 'blog', '0005_alter_article_options_alter_category_options_and_more', '2025-09-10 20:20:12.580539');
INSERT INTO `django_migrations` VALUES (25, 'blog', '0006_alter_blogsettings_options', '2025-09-10 20:20:12.585647');
INSERT INTO `django_migrations` VALUES (26, 'comments', '0001_initial', '2025-09-10 20:20:13.046889');
INSERT INTO `django_migrations` VALUES (27, 'comments', '0002_alter_comment_is_enable', '2025-09-10 20:20:13.066293');
INSERT INTO `django_migrations` VALUES (28, 'comments', '0003_alter_comment_options_remove_comment_created_time_and_more', '2025-09-10 20:20:13.491196');
INSERT INTO `django_migrations` VALUES (29, 'oauth', '0001_initial', '2025-09-10 20:20:13.687683');
INSERT INTO `django_migrations` VALUES (30, 'oauth', '0002_alter_oauthconfig_options_alter_oauthuser_options_and_more', '2025-09-10 20:20:14.417907');
INSERT INTO `django_migrations` VALUES (31, 'oauth', '0003_alter_oauthuser_nickname', '2025-09-10 20:20:14.430922');
INSERT INTO `django_migrations` VALUES (32, 'owntracks', '0001_initial', '2025-09-10 20:20:14.459566');
INSERT INTO `django_migrations` VALUES (33, 'owntracks', '0002_alter_owntracklog_options_and_more', '2025-09-10 20:20:14.503653');
INSERT INTO `django_migrations` VALUES (34, 'servermanager', '0001_initial', '2025-09-10 20:20:14.537011');
INSERT INTO `django_migrations` VALUES (35, 'servermanager', '0002_alter_emailsendlog_options_and_more', '2025-09-10 20:20:14.645874');
INSERT INTO `django_migrations` VALUES (36, 'sessions', '0001_initial', '2025-09-10 20:20:14.731431');
INSERT INTO `django_migrations` VALUES (37, 'sites', '0001_initial', '2025-09-10 20:20:14.756967');
INSERT INTO `django_migrations` VALUES (38, 'sites', '0002_alter_domain_unique', '2025-09-10 20:20:14.830247');
-- ----------------------------
-- Table structure for django_session
-- ----------------------------
DROP TABLE IF EXISTS `django_session`;
CREATE TABLE `django_session` (
`session_key` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`session_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`expire_date` datetime(6) NOT NULL,
PRIMARY KEY (`session_key`) USING BTREE,
INDEX `django_session_expire_date_a5c62663`(`expire_date`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of django_session
-- ----------------------------
INSERT INTO `django_session` VALUES ('u4mo4etzwlqd5laueuj6b06atv3b8i8n', '.eJxVjL0KwjAYAN8ls0jT_DTpKDiKk3P4ki-xwTaRpgVFfHdbUdD1jrsHMTBPnZmLH01E0hJKNr_Mgrv4tApwLs9pKts37_M5pq_d7geI_XE8LSbB4A8Zfb_7lH-7Dkq3vLjlWohGo7Kce4VaURkEdbTmCuvgqsDQWQaKNRyD0h4EtdZVKDljtOHrtPhSYk7G365xvJO2lrUUsnq-AIZTRiI:1v5fUT:CRCJlZbSR39TRBJHWUmdtH5-g92-SRMQcWal9xpEqvk', '2025-11-06 00:54:37.862680');
-- ----------------------------
-- Table structure for django_site
-- ----------------------------
DROP TABLE IF EXISTS `django_site`;
CREATE TABLE `django_site` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`domain` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `django_site_domain_a2e37b91_uniq`(`domain`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of django_site
-- ----------------------------
INSERT INTO `django_site` VALUES (1, 'example.com', 'example.com');
-- ----------------------------
-- Table structure for oauth_oauthconfig
-- ----------------------------
DROP TABLE IF EXISTS `oauth_oauthconfig`;
CREATE TABLE `oauth_oauthconfig` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`appkey` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`appsecret` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`callback_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`is_enable` tinyint(1) NOT NULL,
`creation_time` datetime(6) NOT NULL,
`last_modify_time` datetime(6) NOT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of oauth_oauthconfig
-- ----------------------------
-- ----------------------------
-- Table structure for oauth_oauthuser
-- ----------------------------
DROP TABLE IF EXISTS `oauth_oauthuser`;
CREATE TABLE `oauth_oauthuser` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`openid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`nickname` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`token` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`picture` varchar(350) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL,
`author_id` bigint(20) NULL DEFAULT NULL,
`creation_time` datetime(6) NOT NULL,
`last_modify_time` datetime(6) NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `oauth_oauthuser_author_id_a975bef0`(`author_id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of oauth_oauthuser
-- ----------------------------
-- ----------------------------
-- Table structure for owntracks_owntracklog
-- ----------------------------
DROP TABLE IF EXISTS `owntracks_owntracklog`;
CREATE TABLE `owntracks_owntracklog` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`tid` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`lat` double NOT NULL,
`lon` double NOT NULL,
`creation_time` datetime(6) NOT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of owntracks_owntracklog
-- ----------------------------
-- ----------------------------
-- Table structure for servermanager_commands
-- ----------------------------
DROP TABLE IF EXISTS `servermanager_commands`;
CREATE TABLE `servermanager_commands` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`title` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`command` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`describe` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`creation_time` datetime(6) NOT NULL,
`last_modify_time` datetime(6) NOT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of servermanager_commands
-- ----------------------------
-- ----------------------------
-- Table structure for servermanager_emailsendlog
-- ----------------------------
DROP TABLE IF EXISTS `servermanager_emailsendlog`;
CREATE TABLE `servermanager_emailsendlog` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`emailto` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`title` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`send_result` tinyint(1) NOT NULL,
`creation_time` datetime(6) NOT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of servermanager_emailsendlog
-- ----------------------------
INSERT INTO `servermanager_emailsendlog` VALUES (1, '123@abc.com', '感谢你的评论', '<p>非常感谢您对此网站的评论</p>\n 您可以访问<a href=\"https://example.com/article/2025/10/6/1.html\" rel=\"书签\">利用 Django REST Framework 快速搭建一个AI绘画的API接口</a>\n查看您的评论\n再次感谢您\n <br />\n 如果上面的链接打不开,请复制此链接链接到您的浏览器。\nhttps://example.com/article/2025/10/6/1.html', 0, '2025-10-06 16:26:05.979770');
SET FOREIGN_KEY_CHECKS = 1;

@ -2,51 +2,75 @@
{% load blog_tags %}
{% block header %}
<!-- 针对文章详情页优化SEO信息 -->
<title>{{ article.title }} - {{ SITE_NAME }}</title>
<meta name="description" content="{{ article.body|truncatechars:150|striptags }}">
{% endblock %}
{% block content %}
<!-- 主内容区域 -->
<div id="primary" class="site-content">
<div id="content" role="main">
<!-- 使用自定义模板标签加载并显示文章主体内容 -->
{% load_article_detail article False user %}
<!-- “上一篇/下一篇”文章导航 -->
{% if article.type == 'a' %}
<nav class="nav-single">
<h3 class="assistive-text">文章导航</h3>
{% if next_article %}
<span class="nav-previous"><a href="{{ next_article.get_absolute_url }}" rel="prev"><span
class="meta-nav">&larr;</span> {{ next_article.title }}</a></span>
{% endif %}
<!-- 上一篇文章卡片 -->
{% if prev_article %}
<span class="nav-next"><a href="{{ prev_article.get_absolute_url }}"
rel="next">{{ prev_article.title }} <span
class="meta-nav">&rarr;</span></a></span>
<div class="nav-previous">
<a href="{{ prev_article.get_absolute_url }}" rel="prev">
<span class="meta-nav">&larr; 上一篇</span>
{{ prev_article.title }}
</a>
</div>
{% else %}
<div></div> <!-- 这是一个占位符当没有上一篇文章时确保Grid布局的稳定性 -->
{% endif %}
</nav><!-- .nav-single -->
<!-- 下一篇文章卡片 -->
{% if next_article %}
<div class="nav-next">
<a href="{{ next_article.get_absolute_url }}" rel="next">
<span class="meta-nav">下一篇 &rarr;</span>
{{ next_article.title }}
</a>
</div>
{% endif %}
</nav>
{% endif %}
</div><!-- #content -->
{% if article.comment_status == "o" and OPEN_SITE_COMMENT %}
</div><!-- #content 结束 -->
<!-- 评论区 -->
{% if article.comment_status == "o" and OPEN_SITE_COMMENT %}
<!-- 评论区统一容器,用于应用卡片化样式 -->
<div class="comments-area">
{% include 'comments/tags/comment_list.html' %}
{% if user.is_authenticated %}
{% include 'comments/tags/post_comment.html' %}
{% else %}
<div class="comments-area">
<h3 class="comment-meta">您还没有登录,请您<a
href="{% url "account:login" %}?next={{ request.get_full_path }}" rel="nofollow">登录</a>后发表评论。
</h3>
<!-- 加载评论列表 -->
{% include 'comments/tags/comment_list.html' %}
<!-- 判断用户是否登录,以显示评论框或登录提示 -->
{% if user.is_authenticated %}
<!-- 加载发表评论的表单 -->
{% include 'comments/tags/post_comment.html' %}
{% else %}
<!-- 显示登录提示和第三方登录按钮 -->
<h3 class="comment-meta">您还没有登录,请您<a href="{% url "account:login" %}?next={{ request.get_full_path }}" rel="nofollow">登录</a>后发表评论。</h3>
{% load oauth_tags %}
{% load_oauth_applications request %}
</div>
{% endif %}
{% endif %}
</div>
{% endif %}
</div><!-- #primary -->
</div><!-- #primary 结束 -->
{% endblock %}
{% block sidebar %}
<!-- 侧边栏 -->
{% load_sidebar user "p" %}
{% endblock %}

@ -1,42 +1,35 @@
{% extends 'share_layout/base.html' %}
{% load blog_tags %}
{% load cache %}
{% block header %}
{% if tag_name %}
<title>{{ page_type }}:{{ tag_name }} | {{ SITE_DESCRIPTION }}</title>
{% comment %}<meta name="description" content="{{ page_type }}:{{ tag_name }}"/>{% endcomment %}
{% else %}
<title>{{ SITE_NAME }} | {{ SITE_DESCRIPTION }}</title>
{% endif %}
<meta name="description" content="{{ SITE_SEO_DESCRIPTION }}"/>
<meta name="keywords" content="{{ SITE_KEYWORDS }}"/>
<meta property="og:type" content="blog"/>
<meta property="og:title" content="{{ SITE_NAME }}"/>
<meta property="og:description" content="{{ SITE_DESCRIPTION }}"/>
<meta property="og:url" content="{{ SITE_BASE_URL }}"/>
<meta property="og:site_name" content="{{ SITE_NAME }}"/>
{% endblock %}
{% block content %}
<!-- 主内容区域 -->
<div id="primary" class="site-content">
<div id="content" role="main">
<!-- 如果是分类或标签归档页,显示标题 -->
{% if page_type and tag_name %}
<header class="archive-header">
<p class="archive-title">{{ page_type }}<span>{{ tag_name }}</span></p>
</header><!-- .archive-header -->
<h1 class="archive-title">{{ page_type }}<span>{{ tag_name }}</span></h1>
</header>
{% endif %}
<!-- 循环显示文章列表 -->
{% for article in article_list %}
{% load_article_detail article True user %}
{% empty %}
<p>该分类下还没有文章哦。</p>
{% endfor %}
<!-- 分页导航 -->
{% if is_paginated %}
{% load_pagination_info page_obj page_type tag_name %}
{% endif %}
</div><!-- #content -->
</div><!-- #primary -->
</div>
</div>
{% endblock %}
{% block sidebar %}
<!-- 侧边栏 -->
{% load_sidebar user linktype %}
{% endblock %}

@ -1,123 +1,85 @@
{% load static %}
{% load cache %}
{% load i18n %}
{% load compress %}
{% load i18n %}
{% load blog_tags %}
<!DOCTYPE html>
<!--[if IE 7]>
<html class="ie ie7" lang="zh-CN"
prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# article: http://ogp.me/ns/article#">
<![endif]-->
<!--[if IE 8]>
<html class="ie ie8" lang="zh-CN"
prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# article: http://ogp.me/ns/article#">
<![endif]-->
<!--[if !(IE 7) & !(IE 8)]><!-->
<html lang="zh-CN" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# article: http://ogp.me/ns/article#">
<!--<![endif]-->
<html lang="{{ LANGUAGE_CODE }}">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
{% block header %}
<title>{% block title %}{{ SITE_NAME }}{% endblock %}</title>
<meta name="description" content="{{ SITE_DESCRIPTION }}">
<title>{% block title %}{{ SITE_NAME }}{% endblock %} - {{ SITE_DESCRIPTION }}</title>
<meta name="description" content="{{ SITE_SEO_DESCRIPTION }}">
<meta name="keywords" content="{{ SITE_KEYWORDS }}">
{% endblock %}
{% load blog_tags %}
{% head_meta %}
<link rel="profile" href="http://gmpg.org/xfn/11"/>
<!--[if lt IE 9]>
<script src="{% static 'blog/js/html5.js' %}" type="text/javascript"></script>
<![endif]-->
<link rel="alternate" type="application/rss+xml" title="{{ SITE_NAME }} &raquo; Feed"
href="/feed"/>
<link rel='stylesheet preload' as="font" id='twentytwelve-fonts-css'
href='{% static 'blog/fonts/fonts.css' %}'
type='text/css' media='all'/>
<link rel="dns-prefetch" href="//cdn.mathjax.org"/>
<!-- 字体与图标 -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700&display=swap" rel="stylesheet">
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"/>
<link rel="icon" href="/favicon.ico" type="image/x-icon"/>
<link rel="apple-touch-icon" href="/favicon.ico"/>
{% compress css %}
<!-- 核心主题样式替换掉旧的style.css -->
<link rel='stylesheet' href='{% static 'blog/css/theme.css' %}' type='text-css' media='all'/>
<link rel='stylesheet' id='twentytwelve-style-css' href='{% static 'blog/css/style.css' %}' type='text/css'
media='all'/>
<link href="{% static 'blog/css/oauth_style.css' %}" rel="stylesheet">
{% comment %}<script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script>{% endcomment %}
<!--[if lt IE 9]>
<link rel='stylesheet' id='twentytwelve-ie-css' href='{% static 'blog/css/ie.css' %}' type='text/css' media='all' />
<![endif]-->
<!-- 其他必要的CSS例如代码高亮 -->
<link rel="stylesheet" href="{% static 'pygments/default.css' %}"/>
<link rel="stylesheet" href="{% static 'blog/css/nprogress.css' %}">
{% block compress_css %}
{% endblock %}
{% block compress_css %}{% endblock %}
{% endcompress %}
{% if GLOBAL_HEADER %}
{{ GLOBAL_HEADER|safe }}
{% endif %}
{% if GLOBAL_HEADER %}{{ GLOBAL_HEADER|safe }}{% endif %}
</head>
<body class="home blog custom-font-enabled">
<div id="page" class="hfeed site">
<body>
<div id="page" class="site">
<!-- 现代化的吸顶导航栏 -->
<header id="masthead" class="site-header" role="banner">
<hgroup>
<h1 class="site-title"><a href="/" title="{{ SITE_NAME }}" rel="home">{{ SITE_NAME }}</a>
</h1>
<h2 class="site-description">{{ SITE_DESCRIPTION }}</h2>
</hgroup>
{% load i18n %}
{# <div class="i18n-selector">#}
{# <form action="{% url 'set_language' %}" method="post" id="i18n-form">{% csrf_token %}#}
{# <input name="next" type="hidden" value="{{ redirect_to }}">#}
{# <select name="language" class="i18n-select" >#}
{# {% get_current_language as LANGUAGE_CODE %}#}
{# {% get_available_languages as LANGUAGES %}#}
{# {% get_language_info_list for LANGUAGES as languages %}#}
{# {% for language in languages %}#}
{# <option value="{{ language.code }}"{% if language.code == LANGUAGE_CODE %} selected{% endif %}>#}
{# {{ language.name_local }} ({{ language.code }})#}
{# </option>#}
{# {% endfor %}#}
{# </select>#}
{# <input type="submit" value="Go">#}
{# </form>#}
{# </div>#}
{% include 'share_layout/nav.html' %}
</header><!-- #masthead -->
<nav id="site-navigation" class="main-navigation" role="navigation">
<!-- 网站Logo/名称 -->
<div class="nav-logo">
<a href="/" title="{{ SITE_NAME }}" rel="home">{{ SITE_NAME }}</a>
</div>
<!-- 导航菜单 -->
{% include 'share_layout/nav.html' %}
</nav>
</header>
<!-- 主体内容区 -->
<div id="main" class="wrapper">
{% block content %}{% endblock %}
{% block sidebar %}{% endblock %}
</div>
{% block content %}
{% endblock %}
{% block sidebar %}
{% endblock %}
</div><!-- #main .wrapper -->
<!-- 页脚 -->
{% include 'share_layout/footer.html' %}
</div><!-- #page -->
</div>
<!-- JavaScript 文件 -->
{% compress js %}
<script type="text/javascript" src="{% static 'blog/js/jquery-3.6.0.min.js' %}"></script>
<script type="text/javascript" src="{% static 'blog/js/nprogress.js' %}"></script>
<script>
// 简单的JS交互例如进度条
$(document).ready(function(){
NProgress.start();
});
$(window).on('load', function(){
NProgress.done();
});
</script>
{% block compress_js %}{% endblock %}
{% endcompress %}
{% block footer %}{% endblock %}
</body>
<footer>
<script src="//cdn.bootcss.com/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
{% compress js %}
<script type="text/javascript" src="{% static 'blog/js/jquery-3.6.0.min.js' %}"></script>
<script type="text/javascript" src="{% static 'blog/js/nprogress.js' %}"></script>
<script src="{% static 'blog/js/blog.js' %}" type="application/javascript"></script>
<script src="{% static 'blog/js/navigation.js' %}" type="application/javascript"></script>
<script src="{% static 'mathjax/js/mathjax-config.js' %}" type="application/javascript"></script>
{% block compress_js %}
{% endblock %}
{% endcompress %}
{% block footer %}
{% endblock %}
</footer>
</html>
</html>

@ -1,56 +1,20 @@
<footer id="colophon" role="contentinfo">
<div class="site-info" style="text-align: center">
Copyright&copy;&nbsp;{{ CURRENT_YEAR }}&nbsp;
<div class="site-info">
Copyright &copy; {% now "Y" %}
<a href="/" target="blank">{{ SITE_NAME }}</a>
&nbsp;|&nbsp;
<a href="/sitemap.xml" title="SiteMap" target="_blank">
SiteMap
</a>
<a href="/sitemap.xml" title="SiteMap" target="_blank">SiteMap</a>
&nbsp;|&nbsp;
<a href="/feed" title="RSS Feed" target="_blank">
RSS Feed
</a>
&nbsp;|&nbsp;
<a href="/links.html" title="友情链接" rel="nofollow" target="_blank">
友情链接
</a>
|&nbsp; Hosting On&nbsp;
<a href="https://www.linode.com/?r=b0d38794d05ef8816b357a929106e89b7c6452f9" target="blank" rel="nofollow">Linode</a>
|&nbsp;
<a href="https://tongji.baidu.com/sc-web/3478620/home/ico?siteId=11261596" target="_blank"
rel="nofollow">百度统计</a>
<a href="/feed" title="RSS Feed" target="_blank">RSS Feed</a>
</div>
<div class="site-info" style="text-align: center">
Powered by
<a href="https://www.djangoproject.com/" rel="nofollow" target="blank">Django</a>
<div class="site-info">
Powered by <a href="https://www.djangoproject.com/" rel="nofollow" target="_blank">Django</a>
&nbsp;|&nbsp;
<a href="https://github.com/liangliangyy/DjangoBlog" rel="nofollow" target="blank">liangliangyy</a>
|
<a href="https://www.lylinux.net" target="blank">lylinux</a>
|
本页面加载耗时:<!!LOAD_TIMES!!>s
Theme by Gemini
</div>
{% if BEIAN_CODE %}
<div class="site-info" style="text-align: center">
<a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">
<p style=" height:20px;line-height:20px;margin: 0px 0px 0px 5px; color:#939393;">
{{ BEIAN_CODE }}
</p>
</a>
{% if BEIAN_CODE_GONGAN and SHOW_GONGAN_CODE %}
{{ BEIAN_CODE_GONGAN |safe }}
{% endif %}
</div>
{% endif %}
{% if ANALYTICS_CODE %}
{{ ANALYTICS_CODE| safe }}
{% endif %}
{% if GLOBAL_FOOTER %}
{{ GLOBAL_FOOTER|safe }}
<div class="site-info">
<a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">{{ BEIAN_CODE }}</a>
</div>
{% endif %}
</footer><!-- #colophon -->
</footer>

@ -1,30 +1,22 @@
{% load i18n %}
{% load blog_tags %}
<nav id="site-navigation" class="main-navigation" role="navigation">
<div class="menu-%e8%8f%9c%e5%8d%95-container">
<ul id="menu-%e8%8f%9c%e5%8d%95" class="nav-menu">
<li id="menu-item-3498"
class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-3498">
<a href="/">{% trans 'index' %}</a></li>
<div class="menu-container">
<ul id="nav-menu" class="nav-menu">
<li class="menu-item {% if not tag_name and not page_type %}current-menu-item{% endif %}">
<a href="/">{% trans 'index' %}</a>
</li>
{% load blog_tags %}
{% query nav_category_list parent_category=None as root_categorys %}
{% for node in root_categorys %}
{% include 'share_layout/nav_node.html' %}
{% endfor %}
{% if nav_pages %}
{% for node in nav_pages %}
<li id="menu-item-{{ node.pk }}"
class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-{{ node.pk }}">
<a href="{{ node.get_absolute_url }}">{{ node.title }}</a>
</li>
{% endfor %}
{% endif %}
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children">
<a href="{% url "blog:archives" %}">{% trans 'Article archive' %}</a>
<!-- 动态生成分类导航 -->
{% query nav_category_list parent_category=None as root_categories %}
{% for category in root_categories %}
<li class="menu-item">
<a href="{{ category.get_absolute_url }}">{{ category.name }}</a>
</li>
</ul>
</div>
</nav><!-- #site-navigation -->
{% endfor %}
<li class="menu-item">
<a href="{% url "blog:archives" %}">{% trans 'Article archive' %}</a>
</li>
</ul>
</div>
Loading…
Cancel
Save