【Python】商场停车管理系统 Django+Vue框架 计算机毕业设计项目 Pycharm+Navicat+MySQL安装 附源码+文档+讲解

44 阅读4分钟

一、个人简介

💖💖作者:计算机编程果茶熊 💙💙个人简介:曾长期从事计算机专业培训教学,担任过编程老师,同时本人也热爱上课教学,擅长Java、微信小程序、Python、Golang、安卓Android等多个IT方向。会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 计算机毕业设计选题 💕💕文末获取源码联系计算机编程果茶熊

二、系统介绍

开发语言:Python 后端框架:Django 前端:Vue 数据库:MySQL 系统架构:B/S 开发工具:PyCharm

商场停车管理系统是一个基于B/S架构的智能化停车场管理解决方案,采用Python作为核心开发语言,后端使用Django框架构建稳定可靠的服务接口,前端运用Vue框架打造用户友好的交互界面,数据存储依托MySQL数据库确保数据的一致性和安全性。该系统通过PyCharm集成开发环境进行开发,实现了对商场停车场的全方位数字化管理。系统涵盖车主信息登记与维护、车辆基础信息录入与查询、车辆类型分类管理、停车场基础设施信息管理、车位类型划分管理、车位状态实时监控、车位在线预约服务、车辆入场自动识别与登记、车辆出场计费与结算、以及系统用户权限管理等十大核心功能模块。通过这些模块的有机结合,系统能够有效提升停车场运营效率,优化车位资源配置,减少车主寻找车位的时间成本,为商场提供科学的停车数据分析支持,实现停车场管理的智能化、规范化和信息化,最终提升商场整体服务质量和用户体验。

三、视频解说

商场停车管理系统

四、部分功能展示

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

五、部分代码展示


from pyspark.sql import SparkSession
from django.db import models, transaction
from django.utils import timezone
from decimal import Decimal
import uuid

spark = SparkSession.builder.appName("ParkingManagement").getOrCreate()

def vehicle_entry_management(license_plate, vehicle_type, entry_time):
    with transaction.atomic():
        available_spaces = ParkingSpace.objects.filter(
            space_type__vehicle_type=vehicle_type,
            is_occupied=False,
            is_maintenance=False
        ).select_for_update()
        if not available_spaces.exists():
            return {"success": False, "message": "无可用车位"}
        selected_space = available_spaces.first()
        selected_space.is_occupied = True
        selected_space.current_vehicle = license_plate
        selected_space.occupancy_start_time = entry_time
        selected_space.save()
        entry_record = VehicleEntry.objects.create(
            license_plate=license_plate,
            vehicle_type=vehicle_type,
            entry_time=entry_time,
            parking_space=selected_space,
            entry_fee=selected_space.space_type.entry_fee,
            status='active'
        )
        owner_info = VehicleOwner.objects.filter(
            vehicles__license_plate=license_plate
        ).first()
        if owner_info:
            owner_info.total_visits += 1
            owner_info.last_visit_time = entry_time
            owner_info.save()
            if owner_info.membership_level == 'VIP':
                entry_record.discount_rate = Decimal('0.8')
                entry_record.save()
        parking_lot = selected_space.parking_lot
        parking_lot.current_capacity += 1
        parking_lot.save()
        return {
            "success": True,
            "space_number": selected_space.space_number,
            "entry_id": entry_record.id,
            "estimated_fee": entry_record.entry_fee
        }

def vehicle_exit_management(license_plate, exit_time):
    with transaction.atomic():
        try:
            entry_record = VehicleEntry.objects.get(
                license_plate=license_plate,
                status='active'
            )
            parking_space = entry_record.parking_space
            duration_hours = (exit_time - entry_record.entry_time).total_seconds() / 3600
            base_fee = entry_record.entry_fee
            hourly_rate = parking_space.space_type.hourly_rate
            total_fee = base_fee + (Decimal(str(duration_hours)) * hourly_rate)
            if hasattr(entry_record, 'discount_rate'):
                total_fee *= entry_record.discount_rate
            exit_record = VehicleExit.objects.create(
                entry_record=entry_record,
                exit_time=exit_time,
                duration_hours=Decimal(str(duration_hours)),
                total_fee=total_fee,
                payment_status='pending'
            )
            parking_space.is_occupied = False
            parking_space.current_vehicle = None
            parking_space.occupancy_start_time = None
            parking_space.total_usage_count += 1
            parking_space.save()
            entry_record.status = 'completed'
            entry_record.save()
            parking_lot = parking_space.parking_lot
            parking_lot.current_capacity -= 1
            parking_lot.daily_revenue += total_fee
            parking_lot.save()
            owner_info = VehicleOwner.objects.filter(
                vehicles__license_plate=license_plate
            ).first()
            if owner_info:
                owner_info.total_parking_time += Decimal(str(duration_hours))
                owner_info.total_spending += total_fee
                owner_info.save()
            return {
                "success": True,
                "exit_id": exit_record.id,
                "total_fee": total_fee,
                "duration": duration_hours
            }
        except VehicleEntry.DoesNotExist:
            return {"success": False, "message": "未找到对应的入场记录"}

def parking_space_reservation(owner_id, space_type_id, reservation_start, reservation_end):
    with transaction.atomic():
        try:
            owner = VehicleOwner.objects.get(id=owner_id)
            space_type = SpaceType.objects.get(id=space_type_id)
            existing_reservations = SpaceReservation.objects.filter(
                owner=owner,
                status='active',
                reservation_start__date=reservation_start.date()
            )
            if existing_reservations.exists():
                return {"success": False, "message": "当日已有预约记录"}
            available_spaces = ParkingSpace.objects.filter(
                space_type=space_type,
                is_occupied=False,
                is_maintenance=False
            ).exclude(
                reservations__reservation_start__lt=reservation_end,
                reservations__reservation_end__gt=reservation_start,
                reservations__status='active'
            )
            if not available_spaces.exists():
                return {"success": False, "message": "所选时段无可用车位"}
            selected_space = available_spaces.first()
            duration_hours = (reservation_end - reservation_start).total_seconds() / 3600
            reservation_fee = space_type.reservation_fee * Decimal(str(duration_hours))
            if owner.membership_level == 'GOLD':
                reservation_fee *= Decimal('0.9')
            elif owner.membership_level == 'PLATINUM':
                reservation_fee *= Decimal('0.8')
            reservation = SpaceReservation.objects.create(
                owner=owner,
                parking_space=selected_space,
                reservation_start=reservation_start,
                reservation_end=reservation_end,
                reservation_fee=reservation_fee,
                confirmation_code=str(uuid.uuid4())[:8].upper(),
                status='active'
            )
            selected_space.total_reservations += 1
            selected_space.save()
            owner.total_reservations += 1
            owner.save()
            parking_lot = selected_space.parking_lot
            parking_lot.total_reservations += 1
            parking_lot.save()
            return {
                "success": True,
                "reservation_id": reservation.id,
                "confirmation_code": reservation.confirmation_code,
                "space_number": selected_space.space_number,
                "total_fee": reservation_fee
            }
        except (VehicleOwner.DoesNotExist, SpaceType.DoesNotExist):
            return {"success": False, "message": "用户或车位类型不存在"}

六、部分文档展示

在这里插入图片描述

七、END

💕💕文末获取源码联系计算机编程果茶熊