Giter Club home page Giter Club logo

tianpangji / drf_admin Goto Github PK

View Code? Open in Web Editor NEW
502.0 15.0 149.0 1.08 MB

项目基于Django、Django REST framework(DRF)、Channels、Redis、Vue的前后端分离的后台管理系统,项目采用分模块开发方式, 权限控制采用 RBAC;目前已实现基本功能,满足日常学习使用,工由于工作较忙更新较慢,请见谅......https://tianpangji.github.io/

License: MIT License

Python 100.00%
django django-rest-framework rbac swagger channels redis django-easy-audit python drf-admin drf simpleui

drf_admin's Introduction

DRF-ADMIN 后台管理系统

python django drf redis vue element-ui

项目简介

一个基于 Django、Django REST framework(DRF)、Channels、Redis、Vue的前后端分离的后台管理系统

项目正在开发中......

项目源码

后端源码 前端源码
github https://github.com/TianPangJi/drf_admin https://github.com/TianPangJi/fe_admin

项目启动

项目文档

系统功能

  • 系统管理
    • 用户管理: 提供用户的相关配置及用户筛选,新增用户后,默认密码为123456
    • 角色管理: 对权限进行分配,可依据实际需要设置角色
    • 权限管理: 权限自由控制,增删改查等
    • 部门管理: 可配置系统组织架构,树形表格展示
    • 任务调度: Cron任务管理
  • 系统监控
    • 在线用户: 在线用户监控
    • IP黑名单: 实现系统IP黑名单拉黑功能
    • CRUD日志: 实现CRUD日志记录功能(打算去除)
    • 错误日志: 显示后台未知错误及其详情信息
    • 服务监控: 实时监控查看后台服务器性能
  • 资产管理
    • 服务器管理: 服务器增删改查
    • 网络设备: 待实现
    • 存储设备: 待实现
    • 安全设备: 待实现
  • 工作管理
    • 我的空间: 待实现
    • 需求管理: 待实现
  • 系统工具
    • 系统接口: 展示后台接口--Swagger
  • 个人中心
    • 个人信息管理

系统预览

代码结构

"""
├── celery_task                # Celery异步任务
├── docs                       # 文档
├── drf_admin                  # 项目主文件
│   ├── apps                   # 项目app
│   ├── common                 # 公共接口
│   ├── media                  # 上传文件media
│   ├── settings               # 配置文件
│   ├── utils                  # 全局工具
│   │   ├── exceptions.py      # 异常捕获
│   │   ├── middleware.py      # 中间件
│   │   ├── models.py          # 基类models文件
│   │   ├── pagination.py      # 分页配置
│   │   ├── permissions.py     # RBAC权限控制
│   │   ├── routers.py         # 视图routers
│   │   ├── swagger_schema.py  # swagger
│   │   ├── views.py           # 基类视图
│   │   └── websocket.py       # WebSocket用户验证
│   ├── routing.py             # WebSocket路由
│   ├── urls.py                # 项目根路由
│   └── wsgi.py                # wsgi
├── .gitignore                 # .gitignore文件
├── init.json                  # 数据库基础数据文件
├── LICENSE                    # LICENSE
├── manage.py                  # 项目入口、启动文件
├── README.md                  # README
└── requirements.txt           # requirements文件
"""

快速开始技巧和指南

特别鸣谢

  • 感谢 JetBrains 提供的非商业开源软件开发授权
  • 感谢 Django 提供后端Django框架
  • 感谢 DRF 提供后端DRF框架
  • 感谢 PanJiaChen 提供的前端模板
  • 感谢 EL-ADMIN 提供的页面布局及前端模板

drf_admin's People

Contributors

dependabot[bot] avatar dingguodong avatar huoshi5151 avatar liu3734 avatar ranmaoxuan avatar tianpangji avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

drf_admin's Issues

感谢开源

MultipleDestroyMixin 这个mixin代码逻辑好像有问题

object-level / instance-level / row-level 权限控制

看了项目的权限控制这块,我的理解是可以实现model-level的权限控制,请问能实现实例级别或者对象级别(数据库行级别)的权限控制吗?

举例讲,现有的permission可以实现对自定义model的所有实例增删改查的控制; 如果要实现分别将不同实例分配给不同的用户,请问要怎么实现呢?

权限问题

请问现有功能权限可以基本使用了吗?权限表路径设置是对应的vue的组件路径还是drf_admin url的路径,谢谢

错误的代码放上了折腾好久

python manage.py loaddata init.json

port = int(port, 10)
ValueError: Problem installing fixture '/home/admin/workspace/develop-django/tmp/drf_admin/init.json': Could not load system.Permissions(pk=1): invalid literal for int() with base 10: 'redis'
(env3.6.2) [admin@us-cor

关于用户权限的实现

您好!用户权限RbacPermission类的2点建议:
1、判断权限前几步都是读取数据库,增加了系统负担,最好是全redis操作
2、没有录入后台管控的权限,都是全pass的,容易造成漏洞

权限问题

问下 这个可以实现,权限不通的用户登陆到后台,所显示的功能也不一样,没太看明白 怎么操作

运行久了后端会报“took too long to shut down and was killed.”错误,导致连接异常

Application instance <Task pending name='Task-25' coro=<AsgiHandler.call() running at D:\iot\django\drf_admin\drf_admin\venv\lib\site-packages\channels\http.py:192> wait_for=<Future pending cb=[_chain_future.._call_che
ck_cancel() at C:\Python310\lib\asyncio\futures.py:385, Task.task_wakeup()]>> for connection <WebRequest at 0x1abf6ef07c0 method=GET uri=/api/oauth/info/ clientproto=HTTP/1.1> took too long to shut down and was killed.

用户权限问题

您好,可以把权限设计和对应的表设计的实现,列出一个逻辑关系对应吗,谢谢。

JobsListCreateAPIView(ListCreateAPIView)类的问题

该类下
def get_serializer_class(self):
if self.request.method.lower() == 'get'
这里self下是没有request属性的,运行报错。
可以修改为
class JobsListCreateViewSet(mixins.ListModelMixin, mixins.CreateModelMixin, GenericViewSet):
def get_serializer_class(self):
if self.action == 'list':
return JobsListSerializer

依赖包文件版本需更新

The conflict is caused by:
The user requested hyperlink==19.0.0
autobahn 20.12.3 depends on hyperlink>=20.0.1

The conflict is caused by:
The user requested urllib3==1.26.5
requests 2.24.0 depends on urllib3!=1.25.0, !=1.25.1, <1.26 and >=1.21.1

ModuleNotFoundError: No module named 'easyaudit'

执行 python manage.py migrate 或者 python manage.py runserver 0.0.0.0:8769 都报错 ,提示 ModuleNotFoundError: No module named 'easyaudit' ,这个模块我网上也没搜到 ,是啥原因呢

联系求助

小老板,留个邮箱或者其他联系方式呀,我想参与这个的开发

【咨询问题】在项目任意文件中调试(debug)变量

您好,我在使用这个项目时遇到了一个可能您认为比较简单的问题,想咨询一下,烦请能解答一下。

问题:
比如我想在drf_admin/apps/oauth/views/home.py文件里打印某变量的内容到console或文件。

除了使用print()函数能打印到console,应该如何编写代码呢?烦请提供一个简单的示例,谢谢!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.