首页 > 编程语言 >基于Django+Python的宾馆管理系统设计与实现

基于Django+Python的宾馆管理系统设计与实现

时间:2024-10-23 13:50:06浏览次数:8  
标签:管理系统 Python get request Django user id data response

项目运行

需要先安装Python的相关依赖:pymysql,Django==3.2.8,pillow 使用pip install 安装

第一步:创建数据库

第二步:执行SQL语句,.sql文件,运行该文件中的SQL语句

第三步:修改源代码中的settings.py文件,改成自己的mysql数据库用户名和密码

第四步:运行命令:python manage.py runserver 8000

第五步:打开浏览器查看http://127.0.0.1:8000

毕设帮助,指导,本源码分享(见文末)

系统介绍:

本系统是一个基于Django框架和Python语言开发的宾馆管理系统,旨在提高宾馆信息管理的效率和安全性。系统采用B/S架构,使用MySQL作为后台数据库,实现了宾馆信息的有效管理和快速检索。

整体功能包含:
  • 首页信息展示
  • 会员管理
  • 客房类型管理
  • 热门客房管理
  • 客房预约管理
  • 系统管理
前台模块:
  • 首页:展示宾馆基本信息和热门客房
  • 热门客房:查看客房详情,进行评论或收藏
  • 优惠资讯:展示宾馆的优惠信息
  • 个人中心:会员可以查看和更新个人信息
  • 会员注册/登录:会员注册和登录功能
后台模块:
  • 会员管理:管理员可以查看、修改或删除会员信息
  • 客房类型管理:管理员可以添加、修改或删除客房类型
  • 热门客房管理:管理员可以管理客房信息,包括添加、修改、查看评论和删除
  • 客房预约管理:管理员可以查看和管理客房预约信息
  • 系统管理:管理员可以进行系统设置和维护

源码获取:

私信获取

功能截图:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

代码实现:


def register(request):
    """
    注册账号
    :return:
    """
    try:
        name = request.POST.get('username')
        passwd = request.POST.get('password')
        phone = request.POST.get('phone')
        user = User.objects.filter(name=name)
        if user:
            return JsonResponse({'message': '用户已存在,请直接登录'}, status=403)
        User.objects.create(
            name=name,
            password=passwd,
            phone=phone,
            role=2,
            description=''
        )
        response_data = {'message': '注册成功'}
        return JsonResponse(response_data)
    except Exception as e:
        print(e)
        return JsonResponse({'message': '注册失败'}, status=401)


def password(request):
    username = request.session['username']
    role = int(request.session['role'])
    user_id = request.session['user_id']
    return render(request, 'modify_password.html', locals())


def get_user(request):
    """
    获取用户列表信息 | 模糊查询
    :param request:
    :return:
    """
    keyword = request.GET.get('name')
    page = request.GET.get("page", '')
    limit = request.GET.get("limit", '')
    role_id = request.GET.get('position', '')
    response_data = {}
    response_data['code'] = 0
    response_data['msg'] = ''
    data = []
    if keyword is None:
        results_obj = User.objects.all()
    else:
        results_obj = User.objects.filter(name__contains=keyword).all()
    paginator = Paginator(results_obj, limit)
    results = paginator.page(page)
    if results:
        for user in results:
            record = {
                "id": user.id,
                "name": user.name,
                "password": user.password,
                "phone": user.phone,
                "role": user.role,
                'create_time': user.create_time.strftime('%Y-%m-%d %H:%m:%S'),
                "desc": user.description,
            }
            data.append(record)
        response_data['count'] = len(results_obj)
        response_data['data'] = data

    return JsonResponse(response_data)


def user(request):
    """
    跳转用户页面
    """
    username = request.session['username']
    role = int(request.session['role'])
    user_id = request.session['user_id']
    return render(request, 'user.html', locals())


def login_check(request):
    """
    登录校验
    """
    response_data = {}
    name = request.POST.get('username')
    password = request.POST.get('password')
    user = User.objects.filter(name=name, password=password).first()
    info = {}
    if user:
        # 将用户名存入session中
        request.session["username"] = user.name
        request.session["role"] = user.role
        request.session["user_id"] = user.id
        response_data['message'] = '登录成功'
        return JsonResponse(response_data, status=201)
    else:
        return JsonResponse({'message': '用户名或者密码不正确'}, status=401)


def edit_user(request):
    """
    修改用户
    """
    response_data = {}
    user_id = request.POST.get('id')
    username = request.POST.get('username')
    phone = request.POST.get('phone')
    desc = request.POST.get('desc')

    User.objects.filter(id=user_id).update(
        name=username,
        desc=desc,
        phone=phone)
    response_data['msg'] = 'success'
    return JsonResponse(response_data, status=201)


def del_user(request):
    """
    删除用户
    """
    user_id = request.POST.get('id')
    result = User.objects.filter(id=user_id).first()
    try:
        if not result:
            response_data = {'error': '删除失败!', 'message': '找不到id为%s' % user_id}
            return JsonResponse(response_data, status=403)
        result.delete()
        response_data = {'message': '删除成功!'}
        return JsonResponse(response_data, status=201)
    except Exception as e:
        response_data = {'message': '删除失败!'}
        return JsonResponse(response_data, status=403)


def change_password(request):
    """
    修改密码
    """
    old_pwd = request.POST.get('password1')
    username = request.session["username"]
    user_obj = User.objects.filter(name=username).first()
    if user_obj.password == old_pwd:
        User.objects.filter(name=username).update(password=request.POST.get('password2'))
        return JsonResponse({'msg': '修改成功!', 'error': 0})
    else:
        return JsonResponse({'msg': '旧密码不正确,请重新输入', 'error': 403})

论文参考:

在这里插入图片描述

源码获取:

标签:管理系统,Python,get,request,Django,user,id,data,response
From: https://blog.csdn.net/2301_78370204/article/details/143182329

相关文章

  • Springbootspringboot微服务车站寄存柜管理系统oan92
    Springbootspringboot微服务车站寄存柜管理系统oan92本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能:用户,寄存柜,计价规则,用户等级,寄存订单,寄存结束,用户反馈,反馈回复,寄存柜位置开题报告内容......
  • jsp ssm 共享充电宝管理系统 充电宝平台 电源管理 源码 web java
    一、项目简介本项目是一套基于SSM的共享充电宝管理系统,主要针对计算机相关专业的和需要项目实战练习的Java学习者。包含:项目源码、数据库脚本、软件工具等。项目都经过严格调试,确保可以运行!二、技术实现​后端技术:Spring、SpringMVC、MyBatis前端技术:JSP、HTML、CSS、......
  • Python的京东探险记:揭秘商品详情的快速通道
    在一个充满无限可能的数字世界里,Python,这位编程界的多面手,正准备踏上一场刺激的探险之旅:快速获取京东商品的详情数据。这不仅是一次技术的挑战,更是一次与时间赛跑的较量。!Python先生,这位机智的代码探险家,打开了他的笔记本电脑,准备开始这场冒险。他知道,要快速获取京东的商品详情......
  • 22年计挑赛Python组区域赛个人解答
    第一题:代码部分:生产问题A=100;B=150;List=[]a,b,c,d,e,f,g,h,i=map(int,input().split())list=[a,b,c,d,e,f,g,h,i]forminrange(min(g//a,h//b,i//c)+1):n=min((g-m*a)//e,(h-m*b)//f,(i-m*c)//f)w=A*m+B*nList.append(w);List.append(m);......
  • 【python学习记录篇】08.for、while、break、continue,在python里的使用比在英语阅读理
    小白学习纪实,跨专业学python的第八天~睡了一觉起来觉得自己又行了~   8.1循环    很多情况下,我们会比较讨厌重复着做着相同的事情,因为这样枯燥乏味。很直接的,在我们睡不着失眠的时候,我们会选择重复数绵羊加速我们睡眠。对于程序员来讲同样不喜欢重复地做......
  • 【python学习记录篇】09.Python函数进阶,上难度了上难度了
    小白学习纪实,跨专业学python的第九天~没想到python也要学函数......真是干的漂亮......    9.1函数    9.1.1函数的意义    在生活中,试想一下我们用手洗衣服的时候,我们需要接水,放入脏衣服,放入洗衣液,然后一件件用手搓,每次洗衣服的时候都要这样干,很......
  • Python脚本,它将遍历指定目录下的所有.srt文件,移除其中的不必要的英文字符、不必要的空
    Python脚本,它将遍历指定目录下的所有.srt文件,移除其中的不必要的英文字符、不必要的空行以及不必要的空格。该脚本会保留字幕索引、字幕时间线以及字幕中的中文内容,并且只保留字幕中的中文内容。它还会保留字幕行与字幕之间的换行符,同时去掉字幕与字幕之间的不必要的换行符。处理......
  • 【JAVA毕业设计】基于Vue和SpringBoot的课程作业管理系统
    本文项目编号T023,文末自助获取源码\color{red}{T023,文末自助获取源码}......
  • 为什么需要证件管理软件系统?建筑企业证照管理系统有什么特点?
    大多数企业在投标过程中面临一些普遍的问题:每次准备投标时,都需要耗费大量时间和精力来重新整合所有相关资质文件,包括企业资质、项目案例、投标人员证书、奖项和各类认证。而且,常常在临近投标时,才发现某些资质已经过期或存在缺失,导致关键时刻措手不及。此外,由于缺乏有效的管理,......
  • springboot优质鸭梨的培育管理系统-计算机毕业设计源码92834
    目录摘要1绪论1.1选题背景与意义1.2国内外研究现状1.3论文结构与章节安排2系统分析2.1可行性分析2.2系统流程分析2.2.1数据流程2.2.2业务流程2.3 系统功能分析2.3.1功能性分析2.3.2非功能性分析2.4 系统用例分析2.5本章小结3 系统......