💡 fu-admin-web 采用 VUE3,TS 开发。 💡 fu-admin-backend 采用 Python,Django 和 Django-Ninija 开发。数据库支持MySql,SqlServer,Sqlite。
- 🧑🤝🧑 前端采用VbenAdmin 、Vue3、Ant Design Vue。
- 👭 后端采用 Python 语言 Django 框架以及强大的 Django Ninja。
- 👬 支持加载动态权限菜单,多方式轻松权限控制。
- 💡 Vue2 项目移步Dvadmin
- 💏 特别鸣谢:VbenAdmin 、Ant Design Vue、GoView
- 💡 特别感谢jetbrains 为本开源项目提供免费的 IntelliJ IDEA 授权。
源码地址
项目地址 | |
---|---|
github | https://github.com/FuAdmin/fu-admin |
码云 | https://gitee.com/fuadmin/fu-admin |
内置功能
- 👨⚕️ 菜单管理:配置系统菜单,操作权限,按钮权限标识、后端接口权限等。
- 🧑⚕️ 部门管理:配置系统组织机构(公司、部门、角色)。
- 👩⚕️ 角色管理:角色菜单权限分配、数据权限分配、设置角色按部门进行数据范围权限划分。
- 🧑🎓 权限权限:授权角色的权限范围。
- 👨🎓 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
- 🧑🔧 数据字典:对系统中经常使用的一些较为固定的数据进行维护。
- 🧑🔧 分类字典:对系统中经常使用的一些树形数据进行维护。
- 📁 附件管理:对平台上所有文件、图片等进行统一管理。
- 🗓️ 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
- 定时任务:系统设置定时任务。
准备工作
Python >= 3.8.0 (推荐3.8+版本)
nodejs >= 16.0 (推荐最新)
Mysql >= 5.7.0 (可选,默认数据库sqlite3,推荐8.0版本)
Redis (默认需要,推荐最新版,可修改后台项目的cache配置)
前端 ♝
建议使用pnpm,项目提供了pnpm-lock.yaml
,使用其他包管理器,容易出现版本依赖问题。
# 克隆项目
git clone https://gitee.com/fuadmin/fu-admin.git
# 进入项目目录
cd fu-admin/web
# 安装依赖
pnpm install --registry=https://registry.npm.taobao.org <----这个会报错,不要再试啦!
以上报错,用下面这个:
pnpm install --registry=https://registry.npmmirror.com
# 启动服务
pnpm dev
pnpm dev报错:
问题:ERR_PNPM_BAD_PM_VERSION This project is configured to use v8.6.10 of pnpm. Your current pnpm is v9.1.0
解决:If you want to bypass this version check, you can set the “package-manager-strict” configuration to “false” or set the “COREPACK_ENABLE_STRICT” environment variable to “0”
在.npmrc中添加package-manager-strict=false
vim fu-admin-master\web\.npmrc
public-hoist-pattern[]=husky
public-hoist-pattern[]=*eslint*
public-hoist-pattern[]=*prettier*
public-hoist-pattern[]=lint-staged
public-hoist-pattern[]=*stylelint*
public-hoist-pattern[]=@commitlint/cli
public-hoist-pattern[]=@vben/eslint-config
package-manager-strict=false
D:\workspace\pycharm\fu-admin-master\web>pnpm dev
WARN This project is configured to use v8.1.0 of pnpm. Your current pnpm is v9.1.0
> vben-admin@2.10.1 dev D:\workspace\pycharm\fu-admin-master\web
> pnpm vite
WARN This project is configured to use v8.1.0 of pnpm. Your current pnpm is v9.1.0
10:48:01
VITE v4.4.0 ready in 19572 ms
➜ Local: http://localhost:3000/ 10:48:01
➜ Network: http://10.128.217.27:3000/ 10:48:01
➜ Network: http://192.168.21.1:3000/ 10:48:01
➜ Network: http://192.168.245.1:3000/ 10:48:01
➜ Network: http://10.1.12.62:3000/ 10:48:01
➜ press h to show help 10:48:01
WARN Browserslist: caniuse-lite is outdated. Please run: 10:48:33
npx update-browserslist-db@latest
Why you should do it regularly: https://github.com/browserslist/update-db#readme
# 浏览器访问 http://localhost:3000/#/login
# .env 文件中可配置启动端口等参数
# 构建生产环境
# pnpm build
后端 💈
# 克隆项目
git clone https://gitee.com/fuadmin/fu-admin.git
# 进入项目目录
cd fu-admin/backend
# 在 `env.py` 中配置数据库信息
D:\workspace\pycharm\fu-admin-master\backend\conf\env.py
# 默认是Mysql,如果使用SqlServer,请在requirements.txt中打开
mssql-django==1.1.2
pyodbc==4.0.32
以下如果pip3、python3找不到,pip3用pip,python3用python即可。
# 安装依赖环境
pip3 install -r requirements.txt
# 执行迁移命令:
python3 manage.py makemigrations system
python3 manage.py migrate
# 初始化数据
python3 manage.py init
# 初始化省市县数据:
python3 manage.py init_area
# 启动项目
python3 manage.py runserver 0.0.0.0:8000
# 或使用 daphne :
daphne -b 0.0.0.0 -p 8000 fuadmin.asgi:application
D:\workspace\pycharm\fu-admin-master\backend>python manage.py makemigrations system
Migrations for ‘system’:
system\migrations\0001_initial.py
- Create model Users
- Create model Dept
- Create model Dict
- Create model Menu
- Create model MenuButton
- Create model MenuColumnField
- Create model SystemConfig
- Create model Role
- Create model Post
- Create model OperationLog
- Create model LoginLog
- Create model GeneratorTemplate
- Create model File
- Create model DictItem
- Create model CategoryDict
- Create model Button
- Create model Area
- Create model ApiWhiteList
- Add field dept to users
- Add field groups to users
- Add field post to users
- Add field role to users
- Add field user_permissions to users
D:\workspace\pycharm\fu-admin-master\backend>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, django_celery_beat, django_celery_results, sessions, system
Running migrations:
Applying contenttypes.0001_initial… OK
Applying contenttypes.0002_remove_content_type_name… OK
Applying auth.0001_initial… OK
Applying auth.0002_alter_permission_name_max_length… OK
Applying auth.0003_alter_user_email_max_length… OK
Applying auth.0004_alter_user_username_opts… OK
Applying auth.0005_alter_user_last_login_null… OK
Applying auth.0006_require_contenttypes_0002… OK
Applying auth.0007_alter_validators_add_error_messages… OK
Applying auth.0008_alter_user_username_max_length… OK
Applying auth.0009_alter_user_last_name_max_length… OK
Applying auth.0010_alter_group_name_max_length… OK
Applying auth.0011_update_proxy_permissions… OK
Applying auth.0012_alter_user_first_name_max_length… OK
Applying system.0001_initial… OK
Applying admin.0001_initial… OK
Applying admin.0002_logentry_remove_auto_add… OK
Applying admin.0003_logentry_add_action_flag_choices… OK
Applying django_celery_beat.0001_initial… OK
Applying django_celery_beat.0002_auto_20161118_0346… OK
Applying django_celery_beat.0003_auto_20161209_0049… OK
Applying django_celery_beat.0004_auto_20170221_0000… OK
Applying django_celery_beat.0005_add_solarschedule_events_choices… OK
Applying django_celery_beat.0006_auto_20180322_0932… OK
Applying django_celery_beat.0007_auto_20180521_0826… OK
Applying django_celery_beat.0008_auto_20180914_1922… OK
Applying django_celery_beat.0006_auto_20180210_1226… OK
Applying django_celery_beat.0006_periodictask_priority… OK
Applying django_celery_beat.0009_periodictask_headers… OK
Applying django_celery_beat.0010_auto_20190429_0326… OK
Applying django_celery_beat.0011_auto_20190508_0153… OK
Applying django_celery_beat.0012_periodictask_expire_seconds… OK
Applying django_celery_beat.0013_auto_20200609_0727… OK
Applying django_celery_beat.0014_remove_clockedschedule_enabled… OK
Applying django_celery_beat.0015_edit_solarschedule_events_choices… OK
Applying django_celery_beat.0016_alter_crontabschedule_timezone… OK
Applying django_celery_results.0001_initial… OK
Applying django_celery_results.0002_add_task_name_args_kwargs… OK
Applying django_celery_results.0003_auto_20181106_1101… OK
Applying django_celery_results.0004_auto_20190516_0412… OK
Applying django_celery_results.0005_taskresult_worker… OK
Applying django_celery_results.0006_taskresult_date_created… OK
Applying django_celery_results.0007_remove_taskresult_hidden… OK
Applying django_celery_results.0008_chordcounter… OK
Applying django_celery_results.0009_groupresult… OK
Applying django_celery_results.0010_remove_duplicate_indices… OK
Applying django_celery_results.0011_taskresult_periodic_task_name… OK
Applying sessions.0001_initial… OK
D:\workspace\pycharm\fu-admin-master\backend>python manage.py migrate
D:\workspace\pycharm\fu-admin-master\backend>python manage.py init
正在准备初始化数据,如有初始化数据,将会不做操作跳过…
正在初始化[system.Dept => 部门信息]
初始化完成[system.Dept => 部门信息]
正在初始化[system.Menu => 菜单表]
初始化完成[system.Menu => 菜单表]
正在初始化[system.MenuButton => 菜单按钮表]
初始化完成[system.MenuButton => 菜单按钮表]
正在初始化[system.Dict => 数据字典]
初始化完成[system.Dict => 数据字典]
正在初始化[system.DictItem => 字典项目]
初始化完成[system.DictItem => 字典项目]
正在初始化[system.Role => 角色表]
初始化完成[system.Role => 角色表]
正在初始化[system.Users => 用户表]
初始化完成[system.Users => 用户表]
初始化数据完成!
D:\workspace\pycharm\fu-admin-master\backend>python manage.py init_area
正在准备初始化省份数据…
省份数据初始化数据完成!
D:\workspace\pycharm\fu-admin-master\backend>python manage.py runserver 0.0.0.0:8000
[2024-05-16 15:12:13][django.utils.autoreload.run_with_reloader():677] [INFO] Watching for file changes with StatReloader
Performing system checks…
System check identified no issues (0 silenced).
May 16, 2024 - 15:12:16
Django version 4.0.8, using settings ‘fuadmin.settings’
Starting development server at http://0.0.0.0:8000/
Quit the server with CTRL-BREAK.
访问项目
- 文档访问地址:http://localhost:8000/api/docs (默认为此地址,如有修改请按照配置文件)
- 账号:
superadmin
密码:123456