网站后wordpress文章编辑页面电子商务网站建设与管理的考试

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

网站后wordpress文章编辑页面,电子商务网站建设与管理的考试,用友erp管理系统多少钱,什么软件推广比较好博主介绍#xff1a;✌从事软件开发10年之余#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ #x1f345;文末获取源码联系#x1f345; #x1f447;#x1f3fb; 精… 博主介绍✌从事软件开发10年之余专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 文末获取源码联系 精彩专栏推荐订阅 不然下次找不到哟 ————————————————计算机毕业设计《1000套》✌ Python毕设精品项目✌ 微信小程序毕设精品项目✌ 大数据及机器学习毕设精品项目✌ PSPython、大数据、机器学习等可以用源码或者定制开发 目录 1、项目介绍及开发技术  1.1 项目介绍 1.2 开发技术 2、系统功能设计结构图 3、功能截图  3.1 登录功能 3.2 具体功能 4、关键代码  4.1 setting.py 4.2 urls.py 4.3 config_v.py 4.4 user_v.py 5、论文目录结构  6、源码获取  1、项目介绍及开发技术  1.1 项目介绍 随着汽车市场的快速发展汽车销售行业的竞争日益激烈。传统的手工管理方式已经无法满足现代汽车销售企业的需求尤其是在采购、库存管理和销售跟踪等方面。为了提高管理效率优化资源配置增强市场竞争力我们基于Python开发了一款汽车销售管理系统。 背景 汽车销售企业通常涉及复杂的供应链管理包括采购、库存、销售等多个环节。这些环节的有效管理对于提高客户满意度、降低运营成本、提升销售业绩至关重要。然而传统的管理方式往往效率低下数据孤岛现象严重难以实现信息的实时共享和快速决策。 目的意义 提高管理效率 系统通过自动化的采购、库存和销售管理减少了人工操作提高了管理效率。数据集成 系统整合了采购、库存和销售数据实现了信息的集中管理和实时共享。优化决策支持 系统提供的数据分析和报表统计功能为管理层提供了决策支持有助于优化采购策略和销售计划。提升客户体验 通过预售登记管理和销售跟踪系统有助于提升客户服务质量增强客户满意度。增强团队协作 系统支持不同角色采购员、仓管员、销售员、管理员的协同工作提高了团队协作效率。 综上所述基于Python的汽车销售管理系统旨在为汽车销售企业提供一个全面、高效、便捷的管理平台通过技术手段优化汽车销售流程提升企业竞争力。 1.2 开发技术 技术仅供参考普通Python Web项目一般采用Django/Flask(少用)VueMySQL爬虫框架为Scrapy。Python大数据项目一般采用了Hadoop、Spark、Scrapy、DataGrip等。  序号技术名称类型版本/备注用途描述1Python编程语言Python 3.7.7广泛用于Web开发、数据科学、AI等领域2DjangoWeb框架Django2.0高级Web框架用于快速开发Web应用3FlaskWeb框架Flask2.0.0轻量级Web框架适合小型项目4Scrapy爬虫框架Scrapy2.9.0用于编写爬虫程序快速抓取网页数据5Hadoop大数据处理分布式存储和计算框架适合大数据存储和处理6Spark大数据处理pyspark3.3.2快速、通用的集群计算系统7MySQL数据库MySQL5.7关系型数据库用于存储和管理数据8Navicat数据库管理工具Navicat11数据库管理和开发工具支持多种数据库9DataGrip数据库管理工具强大的数据库管理工具支持多种数据库10PyCharm开发环境Pycharm2021Python IDE提供代码编辑、调试等功能11VSCode开发环境VSCode1.15.1轻量级但功能强大的代码编辑器12Node.js服务器端JS环境Node 14.15.0用于构建高性能的服务器端和网络应用 2、系统功能设计结构图 功能模块结构图 │ ├── 采购员 │   ├── 登录/注册 │   ├── 车辆品牌管理 │   ├── 采购信息管理 │   └── 我的信息 │ ├── 仓管员 │   ├── 登录/注册 │   ├── 车辆品牌管理 │   ├── 库存信息管理 │   ├── 入库信息管理 │   ├── 出库信息管理 │   └── 我的信息 │ ├── 销售员 │   ├── 登录/注册 │   ├── 车辆品牌管理 │   ├── 销售信息管理 │   ├── 预售登记管理 │   └── 我的信息 │ └── 管理员     ├── 登录     ├── 采购员管理     ├── 仓管员管理     ├── 销售员管理     ├── 车辆品牌管理     ├── 采购信息管理     ├── 库存信息管理     ├── 入库信息管理     ├── 出库信息管理     ├── 销售信息管理     ├── 预售登记管理     └── 我的信息 架构图不同框架参考展示  3、功能截图  3.1 登录功能 3.2 具体功能 4、关键代码  4.1 setting.py Django settings for dj2 project.Generated by django-admin startproject using Django 2.0.For more information on this file, see https://docs.djangoproject.com/en/2.0/topics/settings/For the full list of settings and their values, see https://docs.djangoproject.com/en/2.0/ref/settings/ import os from concurrent.futures.thread import ThreadPoolExecutor executor ThreadPoolExecutor(20) from util.configread import config_read# Build paths inside the project like this: os.path.join(BASE_DIR, …) BASE_DIR os.path.dirname(os.path.dirname(os.path.abspath(file)))# Quick-start development settings - unsuitable for production

See https://docs.djangoproject.com/en/2.0/howto/deployment/checklist/# SECURITY WARNING: keep the secret key used in production secret!

SECRET_KEY w5yn#0gn2tt7pvu%hvwt0!lt!$6eqp4%m8)u3u#gknmjm)k# SECURITY WARNING: dont run with debug turned on in production! DEBUG TrueALLOWED_HOSTS []# Application definitionINSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,main,corsheaders, ]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,threadlocals.middleware.ThreadLocalMiddleware,xmiddleware.xparam.Xparam,xmiddleware.xauth.Xauth,corsheaders.middleware.CorsMiddleware,django.middleware.common.CommonMiddleware, ] CORS_ALLOW_CREDENTIALS True CORS_ORIGIN_ALLOW_ALL True CORS_ALLOW_HEADERS ()SESSION_ENGINE django.contrib.sessions.backends.cache SESSION_COOKIE_NAME sessionid SESSION_COOKIE_PATH / SESSION_COOKIE_DOMAIN None SESSION_COOKIE_SECURE False SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_AGE 1209600 SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_SAVE_EVERY_REQUEST FalseROOT_URLCONF dj2.urls TEMPLATES_DIR os.path.join(BASE_DIR, templates) TEMPLATES [{BACKEND: django.template.backends.django.DjangoTemplates,DIRS: [TEMPLATES_DIR],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,],},}, ]WSGI_APPLICATION dj2.wsgi.applicationEMAIL_BACKEND django.core.mail.backends.smtp.EmailBackend EMAIL_USE_TLS False EMAIL_USE_SSL True EMAIL_HOST smtp.qq.com EMAIL_PORT 465 EMAIL_HOST_USER yclw9qq.com EMAIL_HOST_PASSWORD mhbrkuayvkkgbijd# Database

https://docs.djangoproject.com/en/2.0/ref/settings/#databases# DATABASES {

default: {

ENGINE: django.db.backends.sqlite3,

NAME: os.path.join(BASE_DIR, db.sqlite3),

}

}dbtype, host, port, user, passwd, dbName, charset,hasHadoop config_read(config.ini)

dbNamedbName.replace( ,).strip() print(dbtype, host, port, user, passwd, dbName, charset)if dbtype mysql:DATABASES {default: {# ENGINE: django.db.backends.sqlite3,# NAME: os.path.join(BASE_DIR, db.sqlite3),ENGINE: django.db.backends.mysql,OPTIONS: {sql_mode: traditional,init_command: SET sql_modetraditional, # STRICT_TRANS_TABLES},NAME: dbName,USER: user,PASSWORD: passwd,HOST: host,PORT: port,charset: charset,TEST: {CHARSET: charset,COLLATION: utf8_general_ci,},CONN_MAX_AGE:60},} else:print(请使用mysql5.5数据库)os._exit(1)if spark in hasHadoop or hive in hasHadoop:jar_fielpathos.path.join(BASE_DIR,bin,mysql-connector-java-8.0.32.jar)print(jar_fielpath)if os.path.exists(jar_fielpath)False:print(请检查mysql-connector-java-8.0.32.jar文件是否存在)os._exit(1)try:spark SparkSession.builder.config(spark.jars,jar_fielpath).master(local).appName(django).getOrCreate()except Exception as e:print(请检查spark配置,e)os._exit(1)jdbc_urlfjdbc:mysql://{host}:{port}/{dbName}?user{user}password{passwd}drivercom.mysql.jdbc.Driver# Password validation

https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validatorsAUTH_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,},

]# Internationalization

https://docs.djangoproject.com/en/2.0/topics/i18n/LANGUAGE_CODE zh-Hans# TIME_ZONE UTC

TIME_ZONE Asia/ShanghaiUSE_I18N TrueUSE_L10N True# USE_TZ True USE_TZ False# Static files (CSS, JavaScript, Images)

https://docs.djangoproject.com/en/2.0/howto/static-files/STATIC_URL /assets/

STATICFILES_DIRS [ os.path.join(BASE_DIR, templates/front/assets), ]# media MEDIA_URL /media/ # 自定义 MEDIA_ROOT os.path.join(BASE_DIR, media) # 自定义 if os.path.isdir(MEDIA_ROOT) False:os.mkdir(MEDIA_ROOT)ALIPAY_APP_ID
APP_PRIVATE_KEY_STRING open({}/util/alipay_key/app_private_2048.txt.format(BASE_DIR)).read() ALIPAY_PUBLIC_KEY_STRING open({}/util/alipay_key/alipay_public_2048.txt.format(BASE_DIR)).read() ALIPAY_SIGN_TYPE RSA24.2 urls.py dj2 URL ConfigurationThe urlpatterns list routes URLs to views. For more information please see:https://docs.djangoproject.com/en/2.0/topics/http/urls/ Examples: Function views1. Add an import: from my_app import views2. Add a URL to urlpatterns: path(, views.home, namehome) Class-based views1. Add an import: from other_app.views import Home2. Add a URL to urlpatterns: path(, Home.as_view(), namehome) Including another URLconf1. Import the include() function: from django.urls import include, path2. Add a URL to urlpatterns: path(blog/, include(blog.urls))import os from django.contrib import admin from django.urls import path,include,re_path from django.conf.urls import url from django.views.static import serve from django.views.generic import TemplateViewfrom . import views from dj2.settings import dbName as schemaNameurlpatterns [path(xadmin/, admin.site.urls),path(rindex/,views.index),path({}/.format(schemaName),include(main.urls)),#导入schemaNamere_path(radmin/lib/(?Pp1.)/(?Pp2.)\(, views.admin_lib2),re_path(radmin/lib/(?Pp1.*)/(?Pp2.*)/(?Pp3.*)\), views.admin_lib3),re_path(radmin/lib/(?Pp1.)/(?Pp2.)/(?Pp3.)/(?Pp4.)\(, views.admin_lib4),re_path(radmin/page/(?Pp1.*)\), views.admin_page),re_path(radmin/page/(?Pp1.)/(?Pp2.)\(, views.admin_page2),re_path(radmin/pages/(?Pp1.*)\), views.admin_pages),re_path(radmin/pages/(?Pp1.)/(?Pp2.)\(, views.admin_pages2),re_path(rfront/(?Pp1.*)\), views.schema_front1),re_path(rfront/(?Pp1.)/(?Pp2.)\(, views.schema_front2),re_path(rfront/(?Pp1.*)/(?Pp2.*)/(?Pp3.*)\), views.schema_front3),re_path(rfront/(?Pp1.)/(?Pp2.)/(?Pp3.)/(?Pp4.)\(, views.schema_front4),re_path(r{}/front/(?Pp1.*)\).format(schemaName), views.schema_front1),re_path(r{}/front/(?Pp1.)/(?Pp2.)\(.format(schemaName), views.schema_front2),re_path(r{}/front/(?Pp1.*)/(?Pp2.*)/(?Pp3.*)\).format(schemaName), views.schema_front3),re_path(r{}/front/(?Pp1.)/(?Pp2.)/(?Pp3.)/(?Pp4.)\(.format(schemaName), views.schema_front4),# re_path(rassets/(?Pp1.*)\), views.assets1),# re_path(rassets/(?Pp1.)/(?Pp2.)\(, views.assets2),# re_path(rassets/(?Pp1.*)/(?Pp2.*)/(?Pp3.*)\), views.assets3),# re_path(rassets/(?Pp1.)/(?Pp2.)/(?Pp3.)/(?Pp4.)\(, views.assets4),#re_path(radmin/(?Pp1.*)\), views.admin_file1),re_path(radmin/(?Pp1.)/(?Pp2.)\(, views.admin_file2),re_path(radmin/(?Pp1.*)/(?Pp2.*)/(?Pp3.*)\), views.admin_file3),re_path(radmin/(?Pp1.)/(?Pp2.)/(?Pp3.)/(?Pp4.)\(, views.admin_file4),re_path(rlayui/(?Pp1.*)\), views.layui1),re_path(rlayui/(?Pp1.)/(?Pp2.)\(, views.layui2),re_path(rlayui/(?Pp1.*)/(?Pp2.*)/(?Pp3.*)\), views.layui3),re_path(rlayui/(?Pp1.)/(?Pp2.)/(?Pp3.)/(?Pp4.)\(, views.layui4),re_path(rpages/(?Pp1.*)\), views.front_pages),re_path(rpages/(?Pp1.)/(?Pp2.)\(, views.front_pages2),# re_path(rpages/(?Pp1.*)\), views.front_file1),# re_path(r(?Pp1css|jss|img|image|iamges|font|fonts)/(?Pp2.)$, views.front_file2),re_path(rmodules/(?Pp1.)\(, views.front_modules),re_path(rcss/(?Pp1.*)\), views.css1),re_path(rjs/(?Pp1.)$, views.js1),re_path(rimg/(?Pp1.)$, views.img1),path(rtest/str:p1/,views.test),path(rnull,views.null), ]#判断admin使用vue还是jquery if os.path.isdir(os.path.join(os.getcwd(),templates/front/admin/dist/)):urlpatterns.extend([path(r{}/admin/dist/index.html.format(schemaName),TemplateView.as_view(template_namefront/admin/dist/index.html)),path(r{}/admin/.format(schemaName), TemplateView.as_view(template_namefront/admin/dist/index.html)),# 以下是后台admin的url匹配规则path(radmin/dist/index.html.format(schemaName),TemplateView.as_view(template_namefront/admin/dist/index.html)),path(radmin/, TemplateView.as_view(template_namefront/admin/dist/index.html)),]) else:urlpatterns.extend([path(r{}/admin/index.html.format(schemaName),TemplateView.as_view(template_namefront/admin/index.html)),path(r{}/admin/.format(schemaName), TemplateView.as_view(template_namefront/admin/index.html)),# 以下是后台admin的url匹配规则path(radmin/index.html.format(schemaName),TemplateView.as_view(template_namefront/admin/index.html)),path(radmin/, TemplateView.as_view(template_namefront/admin/index.html)),])if os.path.isfile(os.path.join(os.getcwd(),templates/front/index.html)):urlpatterns.extend([path(rindex.html, TemplateView.as_view(template_namefront/index.html)),path(r{}/index.html.format(schemaName), TemplateView.as_view(template_namefront/index.html)),path(r{}/front/index.html.format(schemaName), TemplateView.as_view(template_namefront/index.html)),path(r, TemplateView.as_view(template_namefront/index.html)),])4.3 config_v.py

coding:utf-8

author ilaimport loggingfrom django.http import JsonResponsefrom .config_model import config from util.codes import * from util import message as mesdef config_page(request):获取参数信息:return:if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normal_code,data: {currPage: 1, totalPage: 1, total: 1, pageSize: 10, list: []}}req_dict request.session.get(req_dict)msg[data][list], msg[data][currPage], msg[data][totalPage], msg[data][total], \msg[data][pageSize] config.page(config, config, req_dict)return JsonResponse(msg)def config_list(request):if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normal_code,data: {currPage: 1, totalPage: 1, total: 1, pageSize: 10, list: []}}req_dict request.session.get(req_dict)msg[data][list], msg[data][currPage], msg[data][totalPage], msg[data][total], \msg[data][pageSize] config.page(config, config, req_dict)return JsonResponse(msg)def configinfo(request, id):if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normalcode, data: {}}data config.getbyid(config, config, int(id))if len(data) 0:msg[data] data[0]return JsonResponse(msg)def configdetail(request, id):if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normalcode, data: {}}data config.getbyid(config, config, int(id))if len(data) 0:msg[data] data[0]return JsonResponse(msg)def config_save(request):创建参数信息:return:if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normal_code, data: {}}req_dict request.session.get(req_dict)param1 config.getbyparams(config, config, req_dict)if param1:msg[code] id_exist_codemsg[msg] mes.id_exist_codereturn JsonResponse(msg)error config.createbyreq(config, config, req_dict)logging.warning(save_config.res{}.format(error))if error ! None:msg[code] crud_error_codemsg[msg] errorreturn JsonResponse(msg)def config_add(request):if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normal_code, data: {}}req_dict request.session.get(req_dict)error config.createbyreq(config, config, req_dict)if error ! None:msg[code] crud_error_codemsg[msg] errorreturn JsonResponse(msg)def config_update(request):更新参数信息:return:if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normal_code, data: {}}req_dict request.session.get(req_dict)config.updatebyparams(config, config, req_dict)return JsonResponse(msg)def config_delete(request):删除参数信息:return:if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normal_code, data: {}}req_dict request.session.get(req_dict)config.deletes(config,config,req_dict.get(ids))return JsonResponse(msg)4.4 user_v.py

coding:utf-8

author ilafrom django.http import JsonResponsefrom .users_model import users from util.codes import * from util.auth import Auth import util.message as mes from dj2.settings import host,port,user,passwd,dbName,hasHadoopdef users_login(request):if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normal_code}req_dict request.session.get(req_dict)if req_dict.get(role)!None:del req_dict[role]datas users.getbyparams(users, users, req_dict)if not datas:msg[code] password_error_codemsg[msg] mes.password_error_codereturn JsonResponse(msg)req_dict[id] datas[0].get(id)return Auth.authenticate(Auth, users, req_dict)def users_register(request):if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normal_code}req_dict request.session.get(req_dict)error users.createbyreq(users, users, req_dict)if error ! None:msg[code] crud_error_codemsg[msg] errorreturn JsonResponse(msg)def users_session(request):if request.method in [POST, GET]:msg {code: normal_code,msg:mes.normal_code, data: {}}req_dict {id: request.session.get(params).get(id)}msg[data] users.getbyparams(users, users, req_dict)[0]return JsonResponse(msg)def users_logout(request):if request.method in [POST, GET]:msg {msg: 退出成功,code: 0}return JsonResponse(msg)def users_page(request):if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normal_code,data: {currPage: 1, totalPage: 1, total: 1, pageSize: 10, list: []}}req_dict request.session.get(req_dict)tablename request.session.get(tablename)try:hasMessage users.hasMessageexcept:hasMessage Noneif hasMessage and hasMessage ! 否:if tablename ! users:req_dict[userid] request.session.get(params).get(id)if tablename users:msg[data][list], msg[data][currPage], msg[data][totalPage], msg[data][total], \msg[data][pageSize] users.page(users, users, req_dict)else:msg[data][list], msg[data][currPage], msg[data][totalPage], msg[data][total], \msg[data][pageSize] [],1,0,0,10return JsonResponse(msg)def usersinfo(request, id):if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normalcode, data: {}}data users.getbyid(users, users, int(id))if len(data) 0:msg[data] data[0]# 浏览点击次数try:browseClick users.browseClickexcept:browseClick Noneif browseClick and clicknum in users.getallcolumn(users, users):clickdict {id: int(id), clicknum: str(int(data[0].get(clicknum, 0)) 1)}ret users.updatebyparams(users, users, click_dict)if ret ! None:msg[code] crud_error_codemsg[msg] retreturn JsonResponse(msg)def users_save(request):if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normal_code, data: {}}req_dict request.session.get(req_dict)req_dict[role] 管理员error users.createbyreq(users, users, req_dict)if error ! None:msg[code] crud_error_codemsg[msg] errorreturn JsonResponse(msg)def users_update(request):if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normal_code, data: {}}req_dict request.session.get(req_dict)if req_dict.get(mima) and req_dict.get(password):if mima not in users.getallcolumn(users,users):del req_dict[mima]if password not in users.getallcolumn(users,users):del req_dict[password]try:del req_dict[clicknum]except:passerror users.updatebyparams(users, users, req_dict)if error ! None:msg[code] crud_error_codemsg[msg] errorreturn JsonResponse(msg)def users_delete(request):if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normal_code, data: {}}req_dict request.session.get(req_dict)error users.deletes(users,users,req_dict.get(ids))if error ! None:msg[code] crud_error_codemsg[msg] errorreturn JsonResponse(msg)5、论文目录结构  摘要… I Abstract… II 1 绪论… 1    1.1 项目简介… 1    1.2 调查研究… 1        1.2.1 研究背景及意义… 1        1.2.2 国内外研究现状… 2        1.2.3 研究主要内容… 2    1.3 论文的章节安排… 3 2 系统相关技术介绍… 4    2.1 Python语言… 4    2.2 Django框架… 4    2.3 Scrapy框架… 4    2.4 MySQL数据库… 4 3 系统需求分析… 6    3.1 可行性分析… 6        3.1.1 技术可行性… 6        3.1.2 经济可行性… 6        3.1.3 操作可行性… 6    3.2 系统功能需求… 6        3.2.1 用户端功能需求… 6        3.2.2 XX端功能需求… 6        3.2.3 管理员端功能需求… 6    3.3 系统性能需求… 6 4 系统总体设计… 7    4.1 系统总体架构设计… 7    4.2 系统的功能设计… 7    4.3 数据库设计… 7        4.3.1 概念设计E-R图… 7        4.3.2 逻辑设计关系模式… 7        4.3.3 数据库物理设计… 7 5 系统详细实现… 14    5.1 系统实现环境… 14    5.2 用户端… 14        5.2.1 登录页面… 14        5.2.2 注册页面… 14        5.2.3 XXXX页面… 14        5.2.4 XXXX页面… 14        5.2.5 XXXX页面… 14    5.3 XXXX端… 15        5.3.1 XXXX页面… 15        5.3.2 XXXX页面… 15        5.3.3 XXXX页面… 15        5.3.4 XXXX页面… 15    5.4 管理端… 15        5.4.1 用户管理页面… 15        5.4.2 XXXX页面… 15        5.4.3 XXXX页面… 16        5.4.4 XXXX页面… 16 6 系统测试… 16    6.1 测试目的… 16    6.2 测试方法… 16    6.3 测试用例… 16        6.3.1 XXXX测试… 16        6.3.2 XXXX测试… 16    6.4 测试结果… 16 结论… 17 参考文献… 18 致谢… 19 更多源码 计算机毕业设计选题1000套等你来 Python毕设精品项目 微信小程序毕设精品项目   大数据及机器学习毕设精品项目  6、源码获取  感谢大家的阅读如有不懂的问题可以评论区交流或私聊! 喜欢文章可以点赞、收藏、关注、评论啦 →下方联系方式扫描获取源码←