基于java web的网上书店系统设计

ops/2024/11/29 17:35:09/

摘 要

随着互联网的越发普及,网上购物成为了当下流行的热门行为。网络上开店创业有许多的优势:投入少,启动 资金低,交易便捷。网上书店与传统的线下书店比起来优势巨大,网上书店的经营方式和销售渠道是不同与线下书 店的,网上书店24小时无休的服务是线下商店所无法比拟的。本文正是在这种背景下,结合了现实中的网上书店生 存与发展需要,自行研发了一个网上书店系统。本系统采用Pycharm作为编辑软件,本系统中使用近来最流行的框架Django进行编写本系统, 在本系统中采用 MySQL数据库来存储信息网上书店系统的部分分为两个部分,分别面向的用户角色是消费者和管理员。用户部分的主要功能有登录、注册、商城界面、购物车、用户中心。用户如果没有账号可以先进行注册,注册登录后进入商城首页进行选购图书,挑选完图书可以添加进入购物车等待一次性结算。如果用户想要修改自己的账户 信息或者收获地址可以进入用户中心进行修改。管理员部分主要功能分为登录、添加修改删除商品信息。
关键词:互联网,网上书店,MySQL,Pycharm,Django

开发工具及相关理论

1 Django框架简介
1.1 Django是什么
Django是一个高水准的使用python编程语言驱动的一个开源模型。视图,控制器风格的一种web应用程序框架。 另外,在Django框架里,包括了许多功能强大的第三方插件库,使得Django表现出较强的扩张性。Django项目源自 于一个在线新闻web站点,在2005年以开源形式广为流传。Django具有他核心组件分别是:用于创建模型的对象关系 映射,为管理员用户设计较好的管理界面,URL的设计,对设计者友好的模版语言,缓存系统。
Django如今成为了web开发者的首选框架。Django是一个遵循MVC设计模式的一种框架。MVC是Model、View、Controller三个单词的简写,可以读成模版、模型、视图。Django也涉及到MTV的设计方法。MTV是Model、 Template、View三个单词的简写,代表着模型、模版、视图。Django的优势之一是控制器接收用户输入的部分框架 可以自行处理。

系统实例建模

1普通用户功能用例图
在这里插入图片描述

图1 普通用户模块
2管理员功能用例图
在这里插入图片描述

图2 管理员模块

系统总体设计

1 系统功能设计
系统功能模块图如图1所示:
在这里插入图片描述

图1 系统功能模块图

系统实现

1 用户模块
1 用户注册
在网上书店项目成功启动后,我们首先会看到购物书城可以查看商品但是要购买图书还需要进行登录,如果没 有账号可以先进行注册操作,在书城的右上方有一个注册按钮,点击之后会跳转到注册页面在注册页面输入需要注 册的用户名密码,以及确认一次密码和用户的邮箱,账号在注册时会进行格式检查和确认账号是否存在如果存在会提 示重新填写用户名,具体实现方法是前端发送ajax请求给视图层,视图层函数(regist_exist)调用模型层来检查是 否已经有用户注册了,注册界面如下
在这里插入图片描述

图1系统注册图

总 结

网上书店系统主要是用来帮助消费者节省大量的精力,同时也帮助了经营者可以省下大量的成本,这是两全其 美的。在本次项目中需要存储大量的图书数据,所以我们得拥有足够的数据库存储空间来存储这些数据。此外我们 数据库应该是可以嵌套与一些网络技术中去的,在浏览了大量的资料后我选择了使用MySQL数据库,以及他的可视化 工具Workbench来进行数据库的管理。选择完使用的数据库后,剩下的就是思考使用什么样的软件和技术来进行开发 系统。我查阅了资料后决定使用Pycharm工具来进行代码的编写,我使用他的主要原因是由于Pycharm工具的强大代 码的提示,Pycharm可以节省我大量进行排错的时间,但是不仅仅是由于这个原因,因为我最后选择使用Django来进 行系统代码的开发,由于Django是使用的python语法进行开发。在这个项目中我使用了Django框架来进行代码开发,Django是目前流行的开发web框架。具体进行开发我们可以 先下载Django,具体操作为在pip installDjango。就可以把Django的一些依赖等配置下载下来。在Django下载下来后我们可以使用Django的命令来从官 方那下载一个模版了,具体使用命令是django-admin startproject 项目名。重要的一步我们先从Django连接数据 库开始开始讲起,当然我们得提前建立好需要使用的数据库,我所使用的数据库名称是Book。第二步就是修改一下 Django项目文件下的settings.py文件, 找到默认的数据库连接文件进行修改,修改使用的数据库,把Django默认使 用的数据库改为MySQL数据库,在settings.py文件再修改MySQL数据库账号密码,以及使用的具体数据库表。最后就 是修改项目文件夹下的_init.py文件,替换默认的数据库引擎。接下来就是创建数据表了,我们通过命令来实现具 体就不做详细叙述了。前端代码的编写依据Django的架构我们需要再Templats也就是模版层里面来书写,后端处理 逻辑可以在views也就是视图层进行编写。

参考文献

[1] 龚新定 , 余艳梅 , 吴小强 , 等 . 基于 Django 的实验室信 息管理系统设计 [J]. 微型机与应用 ,2016,35 (22):108-111.
[2] 杨志庆 . 基于 Django 的 Blog 系统的开发与实现 [J]. 机 电一体化 ,2013(9):69-72. [3] 刘班 . 基于 Django 的快速开发 Web 应用 [J]. 电脑知识 与技术 ,2009(7):1616-1618.
[4] Keith Gregory. Implementing an electronic records management system: Apublic sector case study. Records Management Journal,2005.
[5] 卜佳旭. 基于MVC模式企业信息管理系统设计与实现[D]. 北京:电子工业出版社,2008.
[6] 孙卫琴. 基于MVC的JavaWeb技术与开发[M]. 北京:电子工业出版社,2004.
[7] Michael kofler. MySQL 5权威指南[M]. 北京:人民邮电出版社,2006.
[8] 李玮. 软件自动化测试混合框架的研究与实现[D]. 北京:北京交通大学,2007.
[9] 张若愚. Python 科学计算[M]. 清华大学出版社,2012.
[10]挪. Hedand M H. Python 基础教程[J]. 2010.
[11]邓明杨,李忠雄.基于javaweb技术的网上书城的设计与实现[J].计算机产品与流通2020(05):159-160
[12]郑智方,李彬,刘世坤,李鹏.探究mysql的运用实例-对数据库的宏观把握[J].科技风,2020(06):129
[13]郑戟明,董云朝,肖宇,钱之琳.mysql数据库课程的设计[J].电脑知识与技术,2020,16(03):21-22+24
[14]胡强.MySQL 数据库常见问题分析与研究[J].电脑编程技巧与维护,2020(12):91-92.
[15]胡强.MySQL 数据库中 ALTER TABLE 语句的用法研究[J].电脑编程技巧与维护,2020(11):89-90.


http://www.ppmy.cn/ops/137699.html

相关文章

Python 爬虫入门教程:从零构建你的第一个网络爬虫

网络爬虫是一种自动化程序,用于从网站抓取数据。Python 凭借其丰富的库和简单的语法,是构建网络爬虫的理想语言。本文将带你从零开始学习 Python 爬虫的基本知识,并实现一个简单的爬虫项目。 1. 什么是网络爬虫? 网络爬虫&#x…

单片机知识总结(完整)

1、单片机概述 1.1. 单片机的定义与分类 定义: 单片机(Microcontroller Unit,简称MCU)是一种将微处理器、存储器(包括程序存储器和数据存储器)、输入/输出接口和其他必要的功能模块集成在单个芯片上的微型…

蓝桥杯不知道叫什么题目

小蓝有一个整数,初始值为1,他可以花费一些代价对这个整数进行变换。 小蓝可以花贵1的代价将教数增加1。 小蓝可以花费3的代价将整数增加一个值,这个值是整数的数位中最大的那个(1到9) .小蓝可以花费10的代价将整数变为原来的2倍, 例如,如果整…

GitHub Copilot革命性更新:整合顶尖AI模型,如何重塑开发体验?

在技术快速发展的今天,代码辅助工具已成为提升开发效率的利器。今天,我们带来了一个激动人心的消息——GitHub Copilot宣布引入多模型选择功能,这不仅是技术上的一次飞跃,更是对开发者工作流程的一次革新。 多模型选择&#xff1a…

Spring Boot【四】

单例bean中使用多例bean 1.lookup-method方式实现 当serviceB中调用getServiceA的时候,系统自动将这个方法拦截,然后去spring容器中查找对应的serviceA对象然后返回 2.replaced-method:方法替换 我们可以对serviceB这个bean中的getServiceA…

Linux-LVS集群模式

文章目录 LVS的调度算法NAT模式配置DR模式配置 🏡作者主页:点击! 🤖Linux专栏:点击! ⏰️创作时间:2024年11月25日13点10分 LVS的调度算法 静态算法 RR:轮询调度 调度器将收到的请…

力扣—912. 排序数组

912. 排序数组 题目: 给你一个整数数组 nums,请你将该数组升序排列。 你必须在 不使用任何内置函数 的情况下解决问题,时间复杂度为 O(nlog(n)),并且空间复杂度尽可能小。 示例: 示例 1: 输入:nums …

git: 修改gitlab仓库提交地址

git: 修改gitlab仓库提交地址 右键git bash here 1、进入到项目my-project所在位置 2、查看当前项目远程仓库地址 3、修改远程仓库地址 4、再次查看新的远程仓库地址以确认修改成功 cd /my-project git remote -v # 查看当前远程仓库地址 git remote set-url origin 新的Gi…