大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。

💞当前专栏:Python毕业设计

精彩专栏推荐👇🏻👇🏻👇🏻

🎀 Java毕业设计
🌎微信小程序毕业设计

开发环境

  • 开发语言:Python
  • 框架:django
  • Python版本:python3.7.7
  • 数据库:mysql 5.7(一定要5.7版本)
  • 数据库工具:Navicat11
  • 开发软件:PyCharm
  • 浏览器:谷歌浏览器

演示视频

【如需论文或源码请按文末获取联系】

python213基于深度学习的车辆偏离预警系统

一、项目简介

在本次系统的实现中,使用了目前在深度学习,人工智能等方面首选的python语言,结合django框架技术,数据库方面采用目前中小企业都在使用的mysql数据库进行数据的储存和管理,算法上采用了YOLOv5算法进行车辆检测,该算法在识别领域负有盛名,通过用户对于汽车行驶状态的照片,视频等信息系统便可以进行判断给出结果。

二、系统设计

2.1软件功能模块设计

在这里插入图片描述

2.2数据库设计

在这里插入图片描述

三、系统项目部分截图

3.1功能实现

管理员端
用户管理:具有管理员权限的用户在使用该系统时,可以通过用户管理功能系统的用户进行管理和查看。
在这里插入图片描述
用户端
注册:为没有账号的用户提供注册的功能,让用户可以使用系统。
在这里插入图片描述
视频检测:上传车辆行驶视频,看看是否压线。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、部分核心代码

import time

from django.contrib.auth import authenticate, login
from django.shortcuts import render

from .models import User
from django.http import JsonResponse, HttpResponseRedirect
from django.core.paginator import Paginator

from utils.common import login_request
from utils import common


def verif_has_username(id, name):
    # 判断是否用重复的用户名
    user = User.objects.exclude(id=id).filter(username=name)
    return True if len(user) > 0 else False


def register(request):
    """
    注册账号
    :return:
    """
    username = request.POST.get('username')
    sign = verif_has_username(None, username)
    password = request.POST.get('password')
    phone = request.POST.get('phone')
    email = request.POST.get('email', '1@qq.com')
    if sign:
        return JsonResponse({"statusCode": '500', "msg": "用户名重复!"})
    response_data = {
        "statusCode": '200',
        "msg": "用户" + request.POST["username"] + "新增成功!",
    }
    if password == "" or username == "":
        response_data["statusCode"] = '403'
        response_data["msg"] = "用户名或密码为空,注册失败!"
    # 新增用户
    try:
        User.objects.create_user(
            username=username,
            password=password,
            is_superuser='f',
            is_active='t',
            email=email,
            phone=phone
        )
        common.create_log(request, '新增', '创建用户', username, 1)
    except Exception as e:
        print(e)
        common.create_log(request, '新增', '创建用户失败', '', 0)
        response_data["statusCode"] = '500'
        response_data["msg"] = "用户新增失败"
    return JsonResponse(response_data)


@login_request
def password(request):
    return render(request, 'modify_password.html', locals())


def get_user(request):
    """
    获取用户列表信息 | 模糊查询
    :param request:
    :return:
    """
    page = request.GET.get("page", '')
    keyword = request.GET.get("name", '')
    limit = request.GET.get("limit", '')

    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(username__contains=keyword).all()
    paginator = Paginator(results_obj, limit)
    results = paginator.page(page)
    if results:
        for result in results:
            record = {
                "id": result.id,
                "name": result.username,
                "password": result.password,
                "email": result.email,
                "phone": result.phone,
                "role":"管理员" if result.is_superuser else "普通用户",
                'create_time': result.date_joined.strftime('%Y-%m-%d %H:%m:%S'),
                "desc": result.description,
            }
            data.append(record)
        response_data['count'] = len(results_obj)
        response_data['data'] = data

    return JsonResponse(response_data)


@login_request
def user(request):
    """
    跳转用户页面
    """
    return render(request, 'user.html', locals())


def login_check(request):
    """
    登录校验
    """
    response_data = {}
    username = request.POST.get('username')
    password = request.POST.get('password')
    user_obj = authenticate(username=username, password=password)
    if user_obj:
        # 将用户名存入session中
        response_data['msg'] = '登录成功'
        response_data['statusCode'] = '200'
        common.create_log(request, '登录', '登录系统', '', 1)

        login(request, user_obj)

        return JsonResponse(response_data, status=201)
    else:
        common.create_log(request, '登录', '登录系统', username, 0)
        return JsonResponse({'msg': '用户名或者密码不正确','statusCode':'500'}, status=401)


def edit_user(request):
    """
    修改用户
    """
    response_data = {}
    user_id = request.POST.get('id')
    username = request.POST.get('username', '')
    phone = request.POST.get('phone', '')
    email = request.POST.get('email', '')
    description=request.POST.get('desc')
    User.objects.filter(id=user_id).update(
        username=username,
        email=email,
        description=description,
        phone=phone)
    response_data['msg'] = '编辑成功!'
    response_data['error'] = 0
    common.create_log(request, '修改', '修改用户', username, 1)
    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)
        common.create_log(request, '删除', '删除用户', result.username, 1)

        result.delete()
        response_data = {'message': '删除成功!'}
        return JsonResponse(response_data, status=201)
    except Exception as e:
        common.create_log(request, '删除', '删除用户', result.username, 0)

        response_data = {'message': '删除失败!'}
        return JsonResponse(response_data, status=403)


def change_password(request):
    """
    修改密码
    """

    current_user = User.objects.filter(username=request.session["username"]).first()
    if current_user.password == request.POST.get('password'):
        # 修改的密码与原密码重复不予修改
        return JsonResponse({"msg": "修改密码与原密码重复"}), 406
    else:
        # 不重复,予以修改
        current_user.set_password(request.POST.get('password'))
        current_user.save()
        # 清除session回到login界面
        logout(request)
        return JsonResponse({"msg": "success"})

获取源码或论文

如需对应的论文或源码,以及其他定制需求,也可以下方微❤联系。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐