AI大模型教程
一起来学习

[免费]基于Python的Django员工管理系统【论文+源码+SQL脚本】

大家好,我是python222_小锋老师,看到一个不错的基于Python的Django员工管理系统,分享下哈。

项目视频演示

【免费】基于Python的Django员工管理系统 Python毕业设计_哔哩哔哩_bilibili

项目介绍

基于 Django 的企业人员管理系统,作为一款专注于管理和跟踪公司内部企业人员信息的应用程序,在当今企业管理领域有着重要地位。它选取 MySQL 数据库作为稳固的后端存储支撑,凭借其强大的数据存储与管理能力,确保各类企业人员信息得以妥善保存。而前端则巧妙运用 HTML、CSS 和 JavaScript 进行精心设计,致力于为用户打造出功能完备且交互友好的操作界面。

系统展示

部分代码

{% load static %}



    
登录


        .account {
            width: 450px;
            border: 1px solid #dddddd;
            border-radius: 5px;
            box-shadow: 5px 5px 20px #aaa;


            margin-left: auto;
            margin-right: auto;
            margin-top: 100px;

            padding:20px 40px;
        }

        .account h1 {
            text-align: center;
        }
        body {
            background-image: url("{% static 'img/img_2.png' %}");
            background-size:100% auto;
        }
    


from django import forms
from django.core.exceptions import ValidationError
from django.shortcuts import redirect, render

from app01 import models
from app01.utils.pagination import Pagination
from app01.utils.bootstrap import BootStrapModelForm
from app01.utils.encrypt import md5


def admin_list(request):
    """管理员列表"""
    # 检查用户是否已经登录,已登录继续走下去,未登录,跳转回登陆界面
    # 用户发过来的请求,获取cookie随机字符串,拿着随机字符串看看session中有没有
    # request.session["info"]

    info = request.session.get("info")
    if not info:
        return redirect('/login/')

    # 搜索
    data_dict = {}
    search_data = request.GET.get(key='q', default="")

    if search_data:
        # 创建字典元素
        data_dict["username__contains"] = search_data

    # 根据条件去数据获取
    queryset = models.Admin.objects.filter(**data_dict)

    # 分页
    page_object = Pagination(request, queryset)
    context = {
        'queryset': page_object.page_queryset,
        'page_string': page_object.html(),
        "search_data": search_data
    }

    return render(request, 'admin_list.html', context)


class AdminModelForm(BootStrapModelForm):
    confirm_password = forms.CharField(
        label="确认密码",
        widget=forms.PasswordInput(render_value=True),
    )

    class Meta:
        model = models.Admin
        fields = ["username", 'password', "confirm_password"]
        widgets = {
            "password": forms.PasswordInput(render_value=True),
        }

    def clean_password(self):
        pwd = self.cleaned_data.get("password")
        return md5(pwd)

    def clean_confirm_password(self):
        pwd = self.cleaned_data.get("password")
        confirm = md5(self.cleaned_data.get("confirm_password"))
        if confirm != pwd:
            raise ValidationError("密码不一致,请重新输入")
        # 返回什么,数据库保存什么
        return confirm


class AdminEditModelForm(BootStrapModelForm):
    class Meta:
        model = models.Admin
        fields = ['username']


class AdminResetModelForm(BootStrapModelForm):
    confirm_password = forms.CharField(
        label="确认密码",
        widget=forms.PasswordInput(render_value=True),
    )

    class Meta:
        model = models.Admin
        fields = ['password', 'confirm_password']
        widgets = {
            "password": forms.PasswordInput(render_value=True)
        }

    def clean_password(self):
        pwd = self.cleaned_data.get("password")
        md5_pwd = md5(pwd)
        # 去数据库校验当前密码和新输入的密码
        exists = models.Admin.objects.filter(id=self.instance.pk, password=md5_pwd).exists()
        if exists:
            raise ValidationError("不能与之前的密码一致")
        return md5_pwd

    def clean_confirm_password(self):
        pwd = self.cleaned_data.get("password")
        confirm = md5(self.cleaned_data.get("confirm_password"))
        if confirm != pwd:
            raise ValidationError("密码不一致,请重新输入")
        # 返回什么,数据库保存什么
        return confirm


def admin_add(request):
    """添加管理员"""
    title = "新建管理员"
    if request.method == "GET":
        form = AdminModelForm()
        return render(request, 'change.html', {"form": form, "title": title})

    form = AdminModelForm(data=request.POST)
    if form.is_valid():
        form.save()
        return redirect('/admin/list/')

    return render(request, 'change.html', {"form": form, "title": title})


def admin_edit(request, nid):
    """编辑管理员"""
    row_object = models.Admin.objects.filter(id=nid).first()
    if not row_object:
        # return render(request, 'error.html', {"msg": "数据不存在"})
        return redirect('/admin/list/')

    title = "编辑管理员"

    if request.method == "GET":
        form = AdminModelForm(instance=row_object)
        return render(request, 'change.html', {"form": form, "title": title})

    form = AdminModelForm(data=request.POST, instance=row_object)
    if form.is_valid():
        form.save()
        return redirect('/admin/list/')

    return render(request, 'change.html', {"form": form, "title": title})


def admin_delete(request, nid):
    """删除管理员"""
    models.Admin.objects.filter(id=nid).delete()
    return redirect('/admin/list/')


def admin_reset(request, nid):
    """重置密码"""
    row_object = models.Admin.objects.filter(id=nid).first()
    if not row_object:
        # return render(request, 'error.html', {"msg": "数据不存在"})
        return redirect('/admin/list/')

    title = "重置密码 - {}".format(row_object.username)

    if request.method == "GET":
        form = AdminResetModelForm()
        return render(request, 'change.html', {"form": form, "title": title})

    form = AdminResetModelForm(data=request.POST, instance=row_object)
    if form.is_valid():
        form.save()
        return redirect('/admin/list/')
    return render(request, 'change.html', {"form": form, "title": title})

源码下载

链接:https://pan.baidu.com/s/1HjtzETM-nVYgOzaFA3tB-A
提取码:1234

文章来源于互联网:[免费]基于Python的Django员工管理系统【论文+源码+SQL脚本】

相关推荐: Lovart 实战深度测评!仅需4小时帮你完成一整套品牌全案设计!

大家好,我是三石。 公司去年有做过一个茉莉花茶的包装设计,本着试试看的态度,我想看看 Lovart 能实现到什么程度,能帮助各位设计师带来怎么的工作提效。本次测试大概花费 4 小时,最后的成品有图片和视频,我先把视频给大家看下,这个茉莉香氛的商拍视频。 往期测…

赞(0)
未经允许不得转载:5bei.cn大模型教程网 » [免费]基于Python的Django员工管理系统【论文+源码+SQL脚本】
分享到: 更多 (0)

AI大模型,我们的未来

小欢软考联系我们