基于Django3.2.7+Vue2+ElementUI的相对比较自动化生成的后台管理系统。借助SimpleUI开源项目对Django原生的Admin后台管理页面进行了二次开发和优化改进而生成的比较现代化的后台管理系统。
本项目总共有六大模块组成.其分别是:
| 大模块 | 子模块 | 微模块 | 功能 | 是否已实现 |
| 设备管理 | 通用设备管理 | ········ | ········ | ✅ |
| 网络设备管理 | 服务器管理 | ········ | ✅ | |
| 路由器管理 | ········ | ✅ | ||
| 网络管理 | 转换器管理 | ········ | ☑️ | |
| 网段管理 | ········ | ········ | ✅️ | |
| IP地址管理 | ········ | ········ | ✅️ | |
| 穿透管理 | ········ | ········ | ☑️ | |
| 服务管理 | SSH服务 | ········ | ········ | ✅ |
| 数据库管理 | ········ | ········ | ✅ | |
| 宝塔管理 | ········ | ········ | ✅ | |
| ES管理 | ········ | ········ | ✅ | |
| 通用服务管理 | ········ | ········ | ✅ |
| 大模块 | 子模块 | 功能 | 子功能 | 是否已实现 |
| 银行卡管理 | ········ | ········ | ········ | ✅ |
| 信用卡管理 | ········ | ········ | ········ | ✅ |
| 债务管理 | ········ | ········ | ········ | ✅ |
| 流水管理 | ········ | ········ | ········ | ✅ |
| 大模块 | 子模块 | 功能 | 子功能 | 是否已实现 |
| 基本自然人信息 | ········ | ········ | ········ | ✅ |
| 媒体账号信息 | 微博 | 采集 | 自动采集 | ✅️ |
| 定时采集 | ✅️ | |||
| 指定范围采集 | ✅️ | |||
| 统计&分析 | 数据可视化 | ✅️ | ||
| 抖音 | ········ | ········ | ✅️ |
- 通用账号管理
- 平台管理
- 媒体存储媒体
- 基于人脸识别的资源分类
graph LR
Client
MinIO
PostgreSQL
ElasticSearch
subgraph python
subgraph Django
STATICFILES_STORAGE
DEFAULT_FILE_STORAGE
subgraph django.db.backends
postgresql_psycopg2
end
end
subgraph minio_storage.storage
MinioMediaStorage
MinioStaticStorage
end
ElasticSearchPyClient
end
STATICFILES_STORAGE --> MinioStaticStorage
DEFAULT_FILE_STORAGE --> MinioMediaStorage
MinioMediaStorage --> MinIO
MinioStaticStorage--> MinIO
postgresql_psycopg2 --> PostgreSQL
MinIO -->|static files| Client
MinIO -->|media files| Client
Django -->|API| Client
Django -->|HTML| Client
Django -->ElasticSearchPyClient
ElasticSearchPyClient --> ElasticSearch
sequenceDiagram
Client ->> Django: HTTP请求
Django ->> PostgreSQL: 请求数据
PostgreSQL ->> Django: 响应数据
Django ->> ElasticSearch: 请求数据
ElasticSearch ->> Django: 响应数据
Django ->> Client: 返回纯HTML✅ / 拒绝❌
Client ->> MinIO: 请求静态资源
MinIO ->> Client: 响应静态资源
为了实现icloud相关视频处理功能需要用到FFmpeg作为核心。
- 实现可离线的端存储和数据同步功能, 实现端到端数据同步功能, 借鉴并参考git的代码合并和冲突解决机制.
- 修复本地媒体资源管理的预览页面
- 修复本iCloud媒体资源的预览页面
- 实现成本管理功能
- 解决媒体资源模块-文件上传接口中的重复上传同样名文件时出现的版本控制&版本歧义问题.
- 优化服务用户的列表页面中的展示效果
- 实现在服务修改页面中管理当前服务对应的用户信息
- 按功能和模块拆分项目
- 按服务和终端来拆分项目(逐渐施行前后端分离)
- webssh地址的设定改成全局的启动参数为其他外部框架和服务的调用提供便利.˚
-
人脸识别
参考项目:
先在izbasar目录下新建一个secret.py文件
_DEBUG = False
DB_BACKEND = 'django.db.backends.postgresql_psycopg2'
# DB_BACKEND = 'django.db.backends.mysql'
DB_HOST = "127.0.0.1"
DB_PORT = 5555
DB_DATABASE = "allkeeper"
DB_USERNAME = "usernage"
DB_PASSWORD = "password"
# 因为是强制HTTPS, 所以最好是使用域名
MINIO_STORAGE_ENDPOINT = '127.0.0.1:9000'
MINIO_STORAGE_ACCESS_KEY = 'MINIO_STORAGE_ACCESS_KEY'
MINIO_STORAGE_SECRET_KEY = 'MINIO_STORAGE_SECRET_KEY'
SECRET_KEY = ''
ADMIN_PATH = ''
SMTP_EMAIL = ""
SMTP_PASSWORD = ""
CSRF_TRUSTED_ORIGINS = ['http://keeper.sdm.net', 'http://kept.sdm.net', "https://www.nyhc.top"]
ES_USERNAME = ""
ES_PASSWORD = ""
ES_URI = "https://127.0.0.1:9002"
ES_CA = "/usr/etc/http_ca.ctr"
ADMIN_USERNAME = ""
ADMIN_PASSWORD = ""
JWT_SIGNATURE = SECRET_KEY
JWT_ISSUER = ""再执行以下命令来产生数据库文件
python manage.py makemigrations
python manage.py migrate再执行以下命令来运行项目即可
# 直接console运行
python manange.py runserver 7000
# 后台运行
nohup python manange.py runserver 7000 > app.log 2>&1 & echo $! > app.pidnginx 下载地址 http://nginx.org/en/download.html
编译参数:--with-http_image_filter_module
http{
...
server{
...
location /icloud-shortcut {
video_thumb;
image_filter resize 100 200;
image_filter_jpeg_quality 80;
alias /external/SADAM/icloud/photos;
autoindex on;
}
location /icloud {
alias /external/SADAM/icloud/photos;
autoindex on;
}
...
}
...
}先创建allkeeper.service文件并复制allkeeper.service.sample的内容
cp allkeeper.service.sample allkeeper.service再修改内容, 再移到系统服务单位存储目录
vi allkeeper.service
mv allkeeper.service /usr/lib/systemd/system/加载新加入的服务单位
systemctl daemon-reload启动服务
systemctl start allkeeper.service开启开机自启动
systemctl enable allkeeper.serviceWindows脚本(backup_mysql.bat):
@echo off
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
For /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a%%b)
set mydatetime=%mydate%_%mytime%
set BackupFile=backup_directory\backup_%mydatetime%.sql
"mysql_install_directory\bin\mysqldump.exe" -u USERNAME -pPASSWORD DATABASE_NAME > %BackupFile%Linux脚本(backup_mysql.sh):
#!/bin/sh
script_path="$(dirname "$(readlink -f "$0")")"
echo "当前脚本所在路径:$script_path"
backup_dir=${script_path}/backup_sql
mkdir -p $backup_dir
mysqldump -u all_keeper -p 1_nDb9tk0pwa all_keeper > ${backup_dir}/all-keeper_`date +%Y%m%d%H%M%S`.sql将backup_directory替换为您想存储备份文件的目录
将mysql_install_directory替换为MySQL安装目录
使用真实的数据库用户名代替USERNAME
使用真实的数据库密码代替PASSWORD
使用要备份的数据库名称代替DATABASE_NAME
chmod +x backup_mysql.sha) Windows定时任务:
打开任务计划程序 单击"创建基本任务",然后设置触发器(例如:每天、每周等),并选择刚创建的备份脚本作为要执行的操作。
b) Linux的cron任务:
在终端中键入crontab -e以编辑cron配置 添加以下内容(根据实际情况修改):
0 2 * * * /path/to/backup_mysql.sh这将在每天凌晨2点执行备份任务。请将/path/to替换为脚本的实际路径。
现在Windows上执行一下命令
python3 manage.py collectstatic然后执行一下命令
scp -rC /Users/shadikesadamu/Projects/izbasar/django-admin/public root@192.168.1.100:/root/AllKeeper/异常:django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17).
解决方案:
- 首先检查确认现有版本:
sqlite3 --versionwget https://www.sqlite.org/2022/sqlite-autoconf-3400000.tar.gz
tar -xvzf sqlite-autoconf-3400000.tar.gz
cd sqlite-autoconf-3400000.tar.gz
./configure
make && make install
echo export LD_LIBRARY_PATH="/usr/local/lib">> ~/.bashrc异常:django.db.utils.NotSupportedError: deterministic=True requires SQLite 3.8.3 or higher
升级了 sqlite 版本(因 django 怕改动太大就没有尝试卸载django重新安装的方法)。 如下,明明版本已经更新成最新了环境变量也加了,软链接指向也是最新了,可运行还是提醒版本过低。
可能是不支持新的版本,最终决定更换sqlite3 为pysqlite3 和 pysqlite3-binary
解决方案:
- 安装pysqlite3和pysqlite3-binary
pip install pysqlite3
pip install pysqlite3-binary- 打开文件/usr/local/python3/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py,找到 from sqlite3 import dbapi2 as Database 注释它,添加代码
#from sqlite3 import dbapi2 as Database #注释它
from pysqlite3 import dbapi2 as Database #新加这段代码
- 如果二次开发或者部署过程中有什么问题,可以随时联系我们。
|

