项目运行
需要先安装Python的相关依赖:requests,pymysql,Django==3.2.8, jieba,scikits_learn,pandas
第一步:创建数据库
第二步:执行SQL语句,.sql文件,运行该文件中的SQL语句
第三步:修改源代码中的settings.py文件,改成自己的mysql数据库用户名和密码
第四步:运行命令:python manage.py runserver 8000
第五步:打开浏览器查看http://127.0.0.1:8000
测试账户
账户: 用户名:admin 密码:123
毕设帮助,指导,本源码分享,调试部署(见文末)
系统介绍:
本系统的主要用户是想要对房价进行了解的人员,本系统允许多个用户同时使用,也就是说用户可以有多个,但管理员用户只有一个。系统的功能主要是对各房屋销售网站上的房屋数据进行分析,所有的房屋可以进行数据的展示,也可以使用饼状统计图进行更直观的显现,除此之外用户还可以对自己的个人信息比如密码进行维护,管理员用户可以管理其他的用户信息,可以修改或删除系统中现有的用户
功能截图:
编程人员在搭建的开发环境中,会让各种编程技术一起呈现出最终效果。本节就展示关键部分的页面效果。
5.1 管理员功能实现
代码实现:
"""
Django settings for school_epidemic school_epidemic.
Generated by 'django-admin startproject' using Django 3.2.8.
For more information on this file, see
https://docs.djangoproject.com/en/3.2/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/3.2/ref/settings/
"""
import os
from pathlib import Path
# Build paths inside the school_epidemic like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-tp!-oba8k_&by9pw3twb9gnt!2p*llm+q$b0*g!m9k+@myc@e+'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = ['*']
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'index',
'user',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
# TODO
# project需修改项目名称
ROOT_URLCONF = 'website.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
# TODO
# project需修改项目名称
WSGI_APPLICATION = 'website.wsgi.application'
# 数据库配置信息
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'house_predict',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '127.0.0.1',
'PORT': '3306'
}
}
# Password validation
# https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# 系统语言
LANGUAGE_CODE = 'zh-hans'
# 系统时区
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
CORS_ORIGIN_ALLOW_ALL = True # 允许所有域名跨域(优先选择)
CORS_ALLOW_CREDENTIALS = True # 允许携带cookie:
# 配置静态文件路径
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
# 上传图片地址
MEDIA_ROOT = os.path.join(BASE_DIR)
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
总结
本次设计使用的是Python+MYSQL的开发模式,在结合了自己的生活经验以及对他人进行的调查问卷之后最终完成了系统的开发,并且所有的功能都可以正常使用。在为自己通过的学习可以做出一个完整的项目的同时也在反思自己开发的这个系统有哪些不足,最终发现在以下几个方面还有待提升点:
1、某些模块的代码结构冗余,代码执行效率及可读性较差,某些模块中结构不清晰,经过思考发现可以使用面向对象思想中的继承和多态进行改进。
2、数据库的设计较为单一,并且书写SQL查询语句时只用了连接查询和相关子查询等,这会造成查询较多数据时查询速度慢的问题。改进的方法就是使用存储过程和视图来替代复杂的查询语句。