当前位置: 首页 > article >正文

基于Django+Python的房屋信息可视化及价格预测系统设计与实现(带文档)

项目运行

需要先安装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语言开发的房屋信息可视化及价格预测系统,旨在为用户提供房价预测、房屋分析、用户管理等功能。系统通过数据爬取、计算和分析,帮助用户了解房价走势,避免在房价最高时入场,造成不必要的经济损失。

整体功能包含:
  • 用户注册与登录
  • 房价预测
  • 房屋信息管理
  • 房屋数据分析
  • 个人信息查看与维护
前台模块:
  • 首页展示:展示系统公告、站内新闻、房价预测信息等。
  • 房价预测:用户输入房屋相关信息,系统进行价格预测。
  • 房屋信息展示:展示系统中所有房屋的预测数据。
后台模块:
  • 用户管理:管理员可以查看、修改或删除用户信息。
  • 房屋信息管理:管理房屋数据,包括添加、删除和修改。
  • 数据分析:对房屋数据进行分析,生成图表。

功能截图:

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

在这里插入图片描述

代码实现:


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})

论文参考:

在这里插入图片描述

源码获取:


http://www.kler.cn/a/371016.html

相关文章:

  • 79_Redis通信协议RESP
  • Docker 镜像制作原理 做一个自己的docker镜像
  • wpa_cli命令使用记录
  • MYSQL5.7 全文检索中文无返回数据
  • LabVIEW智能水肥一体灌溉控制系统
  • 504 Gateway Timeout:网关超时解决方法
  • 【Java数据结构】树】
  • LabVIEW偏振调制激光高精度测距系统
  • 局域网 docker pull 使用代理拉取镜像
  • ctfshow-web入门-web31
  • 合约门合同全生命周期管理系统:企业智能合同管理的新时代
  • Nginx 迁移到 Caddy:一次完整的反向代理配置迁移实践
  • 基于SpringBoot的图书管理系统 【附源码】
  • leetcode - 257. 二叉树的所有路径
  • 堆的应用——堆排序和TOP-K问题
  • Redis_写时复制(cow)
  • 个人防护装备分割系统:全面扶持小白
  • 了解AIGC——自然语言处理与生成
  • 测试造数,excel转insert语句
  • 医院管理系统设计与实现
  • Vue中使用 vuedraggable进行拖拽
  • JavaScript基本内容续集之函数和对象
  • 服务攻防之开发组件安全
  • 18 Docker容器集群网络架构:一、etcd 概述
  • mit6824-04-主备份复制(VM-FT论文)
  • 小小猫棒onu替换家用光猫,薅运营商带宽羊毛,突破1000M