基于python的NFT购物网站的设计与实现 毕业设计-附源码05030

摘  要

在当今的数字时代,(NFT)已经成为了数字资产领域的热门话题。NFT 代表了一种不可替代的、独一无二的数字资产,如艺术品、收藏品、虚拟世界的物品等。它们利用区块链技术确保了资产的唯一性、稀缺性和可追溯性。

随着 NFT 市场的迅速崛起,对于一个用户友好、功能强大的 NFT 购物网站的需求也日益增长。本项目旨在设计并实现一个基于 Python 的 NFT 购物网站,为用户提供一个安全、便捷的平台来购买、销售和展示 NFT。

通过使用 Python 语言及数据库使用的是MYSQL,将构建一个具有吸引力的用户界面,实现 NFT 资产的展示、交易和管理功能。该网站将利用区块链的去中心化特性,确保 NFT 的真实性和所有权的验证。

本项目的目标是创建一个创新的 NFT 购物网站,为 NFT 爱好者和收藏家提供一个聚集和交易的平台。通过这样的平台,艺术家和创作者可以将他们的数字作品转化为有价值的 NFT,并与全球的买家进行交易。

本项目将结合 Python 的强大功能和 NFT 的潜力,打造一个引人入胜的 NFT 购物网站,为数字资产的交易和收藏带来新的体验和机会。

关键词:NFT购物网站;Python;MYSQL

Abstract

In today's digital age, NFT has become a hot topic in the field of digital assets. NFT represents an irreplaceable and unique digital asset, such as artworks, collectibles, virtual world items, etc. They utilize blockchain technology to ensure the uniqueness, scarcity, and traceability of assets.

With the rapid rise of the NFT market, the demand for a user-friendly and powerful NFT shopping website is also increasing. This project aims to design and implement a Python based NFT shopping website, providing users with a secure and convenient platform to purchase, sell, and display NFTs.

By using Python language and MYSQL as the database, an attractive user interface will be built to enable the display, trading, and management of NFT assets. The website will leverage the decentralized nature of blockchain to ensure the authenticity and ownership verification of NFTs.

The goal of this project is to create an innovative NFT shopping website that provides a gathering and trading platform for NFT enthusiasts and collectors. Through such a platform, artists and creators can convert their digital works into valuable NFTs and engage in transactions with buyers worldwide.

This project will combine the powerful features of Python and the potential of NFTs to create an engaging NFT shopping website, bringing new experiences and opportunities for the trading and collection of digital assets.

Keywords: NFT shopping website; Python; MYSQL

目录

摘  要

Abstract

1 绪论

1.1 研究背景和意义

1.2国内外研究现状

1.3论文结构与章节安排

2 NFT购物网站系统分析

2.1 可行性分析

2.1.1 技术可行性分析

2.1.2 经济可行性分析

2.1.3 操作可行性分析

2.1.4 管理可行性分析

2.2 系统流程分析

2.2.1 数据流程

2.2.2 业务流程

2.3 系统功能分析

2.3.1 功能性分析

2.3.2 非功能性分析

2.4 系统用例分析

3 NFT购物网站总体设计

3.1 系统功能结构设计

3.2 数据库设计

3.2.1 数据库概念结构设计

3.2.2 数据库逻辑结构设计

4 NFT购物网站详细设计与实现

4.1普通用户功能模块

4.1.1 普通用户首页界面

4.1.2注册界面

4.1.3登录界面

4.1.4 个人资料界面

4.1.5 密码修改界面

4.1.6购买信息界面

4.2管理员功能模块

4.2.1 后台首页界面

4.2.2 系统用户管理界面

4.2.3 商品分类管理界面

4.2.4客服联系管理界面

4.2.5资源管理界面

5系统测试

5.1系统测试的目的

5.2 系统测试用例

5.3 系统测试结果

结论

参考文献

致  谢

1 绪论

1.1 研究背景和意义

随着区块链技术的迅速发展,非同质化代币(NFT)作为数字资产的一种形式引起了广泛关注。NFT代表了数字内容的唯一性和所有权,其在艺术品、音乐、游戏等领域展现了巨大的潜力。在这样的背景下,基于Python的NFT购物网站的设计与实现成为了一个重要的研究方向。

基于Python的NFT购物网站的设计与实现具有重要的背景和意义。首先,它可以为艺术家、创作者和收藏家提供一个全新的数字市场,使他们能够交易和展示自己的NFT作品。这将促进数字艺术和文化的创作、传播和交流。

其次,该研究对于推动区块链技术和NFT的应用具有积极的意义。通过设计和实现一个功能完善、安全可靠的NFT购物网站,可以提高用户对NFT市场的信任和参与度,加速NFT的普及和应用范围的扩大。

此外,基于Python的NFT购物网站的研究也有助于推动数字经济的发展。随着NFT市场的兴起,越来越多的数字资产将以NFT的形式存在,并在购物网站上进行交易。这将为数字经济提供新的商业机会和发展空间。

最后,研究基于Python的NFT购物网站设计与实现对于学术界和行业来说都具有重要意义。它可以为相关研究提供新的思路和方法,同时也为开发者和企业提供参考和借鉴,推动NFT市场的健康发展和创新应用。

综上所述,基于Python的NFT购物网站的设计与实现在推动数字艺术市场、促进区块链技术应用、推动数字经济发展以及推动学术研究和行业创新方面具有重要的背景和意义。它将为数字艺术家和收藏家提供全新的交易平台,加速NFT市场的发展,并推动数字经济的蓬勃发展。

1.2国内外研究现状

在国内,基于Python的NFT购物网站的设计与实现的研究相对较少,但随着NFT市场的兴起,相关研究也逐渐增加。以下是国内研究现状的几个方面:

区块链技术应用:一些研究致力于探索如何利用区块链技术,包括以太坊和币安智能链等,来构建基于Python的NFT购物网站,实现NFT的交易和所有权验证。

智能合约开发:部分研究关注如何使用Python开发智能合约,以实现NFT的创建、转移和销售等功能。

用户体验和界面设计:有研究聚焦于用户体验和界面设计,通过优化网站的交互界面和用户操作流程,提高用户对NFT购物网站的满意度和使用便捷性。

安全性和数据保护:一些研究关注如何确保基于Python的NFT购物网站的安全性和数据保护,防止黑客攻击和信息泄露。

国外研究现状

在国外,基于Python的NFT购物网站的研究已经有一定的进展。以下是国外研究现状的几个方面:

NFT市场平台:许多研究关注如何设计和实现基于Python的NFT市场平台,提供NFT交易、拍卖和展示等功能。

用户认证和身份验证:部分研究聚焦于用户认证和身份验证的技术开发,确保购物网站上的用户身份真实可信。

智能合约编程框架:有研究致力于开发智能合约编程框架,使开发人员能够更便捷地使用Python语言进行智能合约的编写和部署。

市场分析和数据挖掘:一些研究关注利用数据挖掘和机器学习技术,对NFT市场中的交易数据和趋势进行分析和预测。

综上所述,国内外关于基于Python的NFT购物网站的设计与实现的研究现状都相对较新,但在区块链技术应用、智能合约开发、用户体验和界面设计等方面都取得了一些进展。这些研究成果为本论文的开展提供了借鉴和参考,同时也表明该领域仍然具有较大的研究空间和发展潜力。

1.3论文结构与章节安排

论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对系统需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:

第一章:引言。第一章主要介绍了课题的研究背景和意义,选题开发的国内外研究现状和本文的研究内容与主要工作。

第二章:系统需求分析。主要从系统的用户、功能等方面进行需求分析。

第三章:系统设计。主要对系统框架、系统功能模块、数据库进行功能设计。

第四章:系统实现。主要介绍了系统框架搭建、系统界面的实现。

第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试

第六章:总结。

2 NFT购物网站系统分析

系统需求分析是系统开发的一个关键环节,它在系统的设计和实现上起到了一个承上启下的位置。系统需求分析是对所需要做的系统进行一个需求的挖掘,如果分析的准确可以精准的解决现实中碰到的问题。如果分析不到位会影响后期系统的实现。一个系统的优秀程度需求分析也是占据了非常大的比例,如果需求分析不到位,后面的系统设计要实现就是一个偏离导航的设计。

2.1 可行性分析

2.1.1 技术可行性分析

基于python的NFT购物网站的设计与实现在技术可行性方面具有广泛的支持和应用。Python作为一种高级编程语言,拥有丰富的第三方库和工具,可以轻松地处理各种技术需求。例如,Python的数据库访问工具和ORM框架可以方便地与数据库进行交互,存储和管理公寓信息。此外,Python还提供了多种网络编程库,使得系统能够实现在线预订、租赁和支付等功能。Python还具备强大的数据处理和分析能力,可以对公寓数据进行统计和报表生成。同时,Python也支持图形化界面开发,可以创建友好且易于操作的用户界面。总体而言,基于python的NFT购物网站的设计与实现在技术可行性方面具备丰富的资源和支持,可以满足系统的各项技术需求,并提供稳定、可靠的功能和性能。

2.1.2 经济可行性分析

开发本基于python的NFT购物网站的技术都是可以从网上直接免费下载,不用花一分钱,而且系统的源代码都是自己进行设计开发的,不需要成本,如果后期想要进行运营,只要把配置到服务器上,花费服务器的租赁费用,在使用中可以进行增加广告收益,因此在经济方面是可性的。

2.1.3 操作可行性分析

当下网络新时代,计算机已经得到了普及,多数人对计算机都比较的熟悉,知道如何使用它,当然也存在对计算机比较陌生的这一群体,也需要对其进行考虑。在进行基于python的NFT购物网站页面的设计的时候,考虑到使用人群,可能也存在对计算机比较陌生的人,所以,在页面的设计方面,设计的很是简单、简洁,布局明了,色调明朗,让无论是对计算机陌生还是对计算机熟悉的使用者,都可以使用自如,这也说明了该程序的操作方面非常可行。

2.1.4 管理可行性分析

本NFT购物网站开发完成后只需要一个管理人员进行后台商品的增删改查以及用户、订单的管理就可以,不需要进行特别的培训,所有的操作只要有一点电脑基础就可以进行管理,在管理方面是可行的。

2.2 系统流程分析

2.2.1 数据流程

NFT购物网站主要的目的就是实现对商品的在线购买,图2-1就是系统的数据流图。

图2-1商品购买操作展开图

2.2.2 业务流程

分析完NFT购物网站的数据流,接下来我们来看系统的业务流程,图2-2就是业务流程图:

图2-2业务流程图

2.3 系统功能分析

2.3.1 功能性分析

按照NFT购物网站的角色,系统划分为了普能用户模块和管理员模块这两大部分。

用户模块:

  1. 首页:这是用户进入网站后首先看到的页面,通常展示热门 NFT 作品、最新上市的 NFT、推荐艺术家等,吸引用户的注意力。
  2. 公告消息:用于发布平台的重要通知、更新和公告,例如交易规则变化、新功能上线等,以确保用户了解平台的最新动态。
  3. 平台资讯:提供有关 NFT 市场、区块链技术、艺术趋势等方面的资讯和新闻,帮助用户了解行业动态和市场趋势。
  4. 版权品市场:专门展示和销售具有版权的 NFT 作品,这些作品可能是原创艺术、音乐、文学等,买家可以购买到独一无二的版权资产。
  5. 衍生品市场:提供 NFT 衍生品的交易场所,例如基于 NFT 作品的周边产品、限量版商品等,为用户提供更多的购物选择。
  6. 盲盒市场:类似于传统的盲盒概念,用户可以购买未知的 NFT 盲盒,获得惊喜和随机性的购物体验。
  7. 艺术家榜单:展示平台上受欢迎的艺术家排名,用户可以根据榜单发现优秀的艺术家和他们的作品。
  8. 客服联系:提供用户与平台客服团队联系的方式,用户可以通过此功能提出问题、解决纠纷或寻求帮助。
  9. 我的账户:用户个人的账户管理中心,包括个人信息设置、余额查看、交易记录等。
  10. 个人中心:

● 个人首页:展示用户个人资料、头像、拥有的 NFT 等个性化信息。

● 购买信息:记录用户的购买历史,包括购买的 NFT 详情和交易状态。

● 收藏:用户可以将自己喜欢的 NFT 加入收藏夹,方便随时查看和管理。

管理员模块:

  1. 后台首页:管理员登录后的起始页面,提供整体系统状态的概览和重要信息的展示。
  2. 系统用户:管理网站的用户,包括用户注册、审核、权限设置等。
  3. 商品分类管理:对 NFT 商品进行分类和管理,确保商品能够准确归类,方便用户浏览和搜索。
  4. 版权品市场管理:对版权品市场进行管理,包括审核版权作品、设置价格和交易规则等。
  5. 衍生品市场管理:管理 NFT 衍生品的上市、下架、库存等,确保衍生品市场的正常运作。
  6. 盲盒市场管理:配置盲盒的内容、价格和发布规则,管理盲盒市场的活动和促销。
  7. 艺术家榜单管理:审核和管理艺术家榜单,确保榜单的准确性和公正性。
  8. 购买信息管理:查看和处理用户的购买记录,解决交易纠纷和退款等问题。
  9. 客服联系管理:处理用户的咨询、投诉和建议,及时回复用户的消息,提供优质的客户服务。
  10. 系统管理:管理网站首页的轮播图,展示重要的推广信息和活动。
  11. 公告消息管理:发布、编辑和删除平台的公告消息,确保用户及时了解重要信息。
  12. 资源管理:管理平台资讯的内容,包括分类、发布和更新,提供有价值的行业信息和趋势。

2.3.2 非功能性分析

NFT购物网站的非功能性需求比如平台的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-3表格中:

2-3NFT购物网站非功能需求表

安全性

主要指NFT购物网站数据库的安装,数据库的使用和密码的设定必须合乎规范。

可靠性

可靠性是指NFT购物网站能够安装用户的指示进行操作,经过测试,可靠性90%以上。

性能

性能是影响NFT购物网站占据市场的必要条件,所以性能最好要佳才好。

可扩展性

比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。

易用性

用户只要跟着NFT购物网站的页面展示内容进行操作,就可以了。

可维护性

NFT购物网站开发的可维护性是非常重要的,经过测试,可维护性没有问题

2.4 系统用例分析

通过2.3的功能分析,得出了系统的用例图:

普通用户角色用例如图2-4所示。

图2-4普通用户角色用例图

管理员是维护整个NFT购物网站中所有数据信息的。管理员角色用例如图2-5所示。

图2-4 管理员角色用例图

3 NFT购物网站总体设计

本章主要讨论的内容包括NFT购物网站的功能模块设计、数据库系统设计。

3.1 系统功能结构设计

系统在结构上的设计至关重要,要考虑周全,设计全面,一个完善的结构体系,能够满足用户在使用时的各种需求,这样会让提高程序的使用率,保证程序被长久的利用。在设计NFT购物网站的结构时,也列入重点,采用模块化的方法来进行设计,即首先将大模块确定下来,再慢慢的将大模块进行补充完善,向下分支出小模块,一起共同组成的系统的结构体系,下图是该NFT购物网站的结构设计图,直观明了的可以看出本项目程序的功能。

NFT购物网站模块图如图3-1所示。

图3-1 NFT购物网站功能模块图

3.2 数据库设计

数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。

3.2.1 数据库概念结构设计

下面是整个NFT购物网站中主要的数据库表总E-R实体关系图。

图3-2 NFT购物网站总E-R关系图

3.2.2 数据库逻辑结构设计

在数据库表中我们会看到系统的表名、主键、外键等信息,我们通过数据库表的主键、外键把每个表关联起来,然后在界面中展示,本NFT购物网站的主要的数据库表如下:

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

article_id

mediumint

8

0

N

Y

文章id:[0,8388607]

2

title

varchar

125

0

N

Y

标题:[0,125]用于文章和html的title标签中

3

type

varchar

64

0

N

N

0

文章分类:[0,1000]用来搜索指定类型的文章

4

hits

int

10

0

N

N

0

点击数:[0,1000000000]访问这篇文章的人次

5

praise_len

int

10

0

N

N

0

点赞数

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

8

source

varchar

255

0

Y

N

来源:[0,255]文章的出处

9

url

varchar

255

0

Y

N

来源地址:[0,255]用于跳转到发布该文章的网站

10

tag

varchar

255

0

Y

N

标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开

11

content

longtext

2147483647

0

Y

N

正文:文章的主体内容

12

img

varchar

255

0

Y

N

封面图

13

description

text

65535

0

Y

N

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]决定分类显示的先后顺序

3

name

varchar

16

0

N

N

分类名称:[2,16]

4

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

5

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

6

icon

text

65535

0

Y

N

分类图标:

7

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表artist_list (艺术家榜单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

artist_list_id

int

10

0

N

Y

艺术家榜单ID

2

product_name

varchar

64

0

Y

N

商品名称

3

product_classification

varchar

64

0

Y

N

商品分类

4

commodity_price

int

10

0

Y

N

0

商品价格

5

product_labels

varchar

64

0

Y

N

商品标签

6

product_images

varchar

255

0

Y

N

商品图片

7

product_introduction

longtext

2147483647

0

Y

N

商品简介

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳转方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可删除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查询字段:

16

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

17

table_nav

varchar

500

0

Y

N

跨表导航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表blind_box_market (盲盒市场)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

blind_box_market_id

int

10

0

N

Y

盲盒市场ID

2

product_name

varchar

64

0

Y

N

商品名称

3

product_classification

varchar

64

0

Y

N

商品分类

4

commodity_price

int

10

0

Y

N

0

商品价格

5

product_labels

varchar

64

0

Y

N

商品标签

6

product_images

varchar

255

0

Y

N

商品图片

7

product_introduction

longtext

2147483647

0

Y

N

商品简介

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表copyright_market (版权品市场)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

copyright_market_id

int

10

0

N

Y

版权品市场ID

2

product_name

varchar

64

0

Y

N

商品名称

3

product_classification

varchar

64

0

Y

N

商品分类

4

commodity_price

int

10

0

Y

N

0

商品价格

5

product_labels

varchar

64

0

Y

N

商品标签

6

product_images

varchar

255

0

Y

N

商品图片

7

product_introduction

longtext

2147483647

0

Y

N

商品简介

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表customer_service_contact (客服联系)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

customer_service_contact_id

int

10

0

N

Y

客服联系ID

2

contact_title

varchar

64

0

Y

N

联系标题

3

contact_wechat

varchar

64

0

Y

N

联系微信

4

wechat_images

varchar

255

0

Y

N

微信图片

5

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表derivatives_market (衍生品市场)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

derivatives_market_id

int

10

0

N

Y

衍生品市场ID

2

product_name

varchar

64

0

Y

N

商品名称

3

product_classification

varchar

64

0

Y

N

商品分类

4

commodity_price

int

10

0

Y

N

0

商品价格

5

product_labels

varchar

64

0

Y

N

商品标签

6

product_images

varchar

255

0

Y

N

商品图片

7

product_introduction

longtext

2147483647

0

Y

N

商品简介

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表product_classification (商品分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

product_classification_id

int

10

0

N

Y

商品分类ID

2

product_classification

varchar

64

0

Y

N

商品分类

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表purchase_information (购买信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

purchase_information_id

int

10

0

N

Y

购买信息ID

2

product_name

varchar

64

0

Y

N

商品名称

3

product_classification

varchar

64

0

Y

N

商品分类

4

commodity_price

int

10

0

Y

N

0

商品价格

5

regular_users

int

10

0

Y

N

0

普通用户

6

user_name

varchar

64

0

Y

N

用户姓名

7

user_phone_number

varchar

64

0

Y

N

用户电话

8

purchase_time

datetime

19

0

Y

N

购买时间

9

purchase_quantity

int

10

0

Y

N

0

购买数量

10

purchase_amount

varchar

64

0

Y

N

购买金额

11

pay_state

varchar

16

0

N

N

未支付

支付状态

12

pay_type

varchar

16

0

Y

N

支付类型: 微信、支付宝、网银

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表regular_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

regular_users_id

int

10

0

N

Y

普通用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

user_gender

varchar

64

0

Y

N

用户性别

4

user_age

varchar

64

0

Y

N

用户年龄

5

examine_state

varchar

16

0

N

N

已通过

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表sensitive_vocabulary (敏感词汇)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

sensitive_vocabulary_id

int

10

0

N

Y

敏感词汇ID

2

sensitive_vocabulary

varchar

64

0

Y

N

敏感词汇

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

vip_level

varchar

255

0

Y

N

会员等级

16

vip_discount

double

11

2

Y

N

0.00

会员折扣

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

4 NFT购物网站详细设计与实现

4.1普通用户功能模块

4.1.1 普通用户首页界面

游客或者用户进入系统后可以查看系统的信息,包含了程序的标题,导航栏,轮播图,公告信等,其主界面展示如下图4-1所示。

图4-1 普通用户首页界面图

4.1.2注册界面

游客可以查看系统信息,也有注册成为用户的权限。其用注册流程图如图4-2所示,注册界面展示如下图4-3所示。

图4-2注册流程图

图4-3 用户注册界面图

用户注册的关键代码如下:

          def Register(self, ctx):

        print("===================注册=====================")

        userService = service_select("user")

        body = ctx.body

        if "username" not in body and body["username"] == '':

            return ctx.response(json.dumps({

                "error": {

                    "code": 70000,

                    "message": "用户名不能为空",

                }

            }, ensure_ascii=False))

        if "user_group" not in body and body["user_group"] == '':

            return ctx.response(json.dumps({

                "error": {

                    "code": 70000,

                    "message": "用户组不能为空",

                }

            }, ensure_ascii=False))

        if "password" not in body and body["password"] == '':

            return ctx.response(json.dumps({

                "error": {

                    "code": 70000,

                    "message": "密码不能为空",

                }

            }, ensure_ascii=False))

        post_param = body

        post_param['nickname'] = body["nickname"] or ""

        post_param['password'] = md5hash(body["password"])

        obj = userService.Get_obj({"username": post_param['username']}, {"like": False})

        if obj:

            return ctx.response(json.dumps({

                "error": {

                    "code": 70000,

                    "message": "用户名已存在",

                }

            }, ensure_ascii=False))

        ret = {

            "error": {

                "code": 70000,

                "message": "注册失败",

            }

        }

        bl = userService.Add(post_param)

        if bl:

            ret = {

                "result": {

                    "bl": True,

                    "message": "注册成功"

                }

            }

        return ctx.response(json.dumps(ret, ensure_ascii=False))

4.1.3登录界面

当用户注册成功以后就成为了买家用户,买家用户可以通过前台的登录页面登录到系统当中,用户登录流程如图4-4所示,登录界面如下图4-5所示。

图4-4 登录流程图

图4-5会员登录界面图

用户登录关键代码如下:

def Login(self, ctx):

        print("===================登录=====================")

        ret = {

            "error": {

                "code": 70000,

                "message": "账户不存在",

            }

        }

        body = ctx.body

        password = md5hash(body["password"]) or ""

        obj = service_select("user").Get_obj(

            {"username": body["username"]}, {"like": False}

        )

        if obj:

            user_group = service_select("user_group").Get_obj({'name': obj['user_group']}, {"like": False})

            if user_group and user_group['source_table'] != '':

                user_obj = service_select(user_group['source_table']).Get_obj({"user_id": obj['user_id']},                                                                       {"like": False})

                if user_obj['examine_state'] == '未通过':

                    ret = {

                        "error": {

                            "code": 70000,

                            "message": "账户未通过审核",

                        }

                    }

                    return ret

                if user_obj['examine_state'] == '未审核':

                    ret = {

                        "error": {

                            "code": 70000,

                            "message": "账户未审核",

                        }

                    }

                    return ret

            if obj["state"] == 1:

                if obj["password"] == password:

                    timeout = timezone.now()

                    timestamp = int(time.mktime(timeout.timetuple())) * 1000

                    token = md5hash(str(obj["user_id"]) + "_" + str(timestamp))

                    ctx.request.session[token] = obj["user_id"]

                    service_select("access_token").Add(

                        {"token": token, "user_id": obj["user_id"]}

                    )

                    obj["token"] = token

                    ret = {

                        "result": {"obj": obj}

                    }

                else:

                    ret = {

                        "error": {

                            "code": 70000,

                            "message": "密码错误",

                        }

                    }

            else:

                ret = {

                    "error": {

                        "code": 70000,

                        "message": "用户账户不可用,请联系管理员",

                    }

                }

        return ctx.response(json.dumps(ret, ensure_ascii=False))

4.1.4 个人资料界面

个人资料:当用户点击首页右上角“我的账户”这个按钮,可以对个人的资料、进行修改,个人资半界面图如下图4-6所示。

图4-6个人资料界面图

4.1.5 密码修改界面

用户使用该系统注册完成后,用户对登录密码有修改需求时,系统也可以提供用户修改密码权限。系统中所有的操作者能够变更自己的密码信息,执行该功能首先必须要登入系统,然后选择密码变更选项以后在给定的文本框中填写初始密码和新密码来完成修改密码的操作。在填写的时候,假如两次密码填写存在差异,那么此次密码变更操作失败。密码修改界面如下图4-7所示。

图4-7 密码修改界面图

4.1.6购买信息界面

用户可以对商品进行管理购买,购买信息界面如下图4-8所示,购买流程图如图4-9所示。

图4-8购买信息界面图

购买信息关键代码如下:

WSGI_APPLICATION = "app.wsgi.application"

DATABASES = {

    "default": {

        "ENGINE": "django.db.backends.mysql",

        "NAME": "project93355",

        "USER": "root",

        "PASSWORD": "root",

        "HOST": "127.0.0.1",

        "PORT": "3306",

    }

}

图4-9购买工作流程图

4.2管理员功能模块

4.2.1 后台首页界面

管理员登陆系统后台后可以在首页查看今日用户访问量、今日营业额、今日销售量、客户总数、系统公告,后台首页界面如下图4-10所示。

图4-10后台首页界面图

4.2.2 系统用户管理界面

管理员可以管理购买商品的用户的账户信息,系统用户管理界面如下图4-11所示。

图4-11系统用户管理界面图

4.2.3 商品分类管理界面

管理员拥有对商品分类进行添加、修改、删除、查询的功能,商品分类列表和商品分类添加界面如下图4-12和4-13所示。

图4-12商品分类列表界面图

图4-13商品分类添加界面图

4.2.4客服联系管理界面

管理员在“客服联系管理”模块,可以查看客服联系列表,也可以添加新的客服联系。客服联系列表和客服务联系添加界面如下图4-14和4-15所示。

图4-14 客服联系列表界面图

图4-15 客服联系添加界面图

4.2.5资源管理界面

管理员点击“资源管理”菜单能够对其下子菜单平台资讯、资讯分类进行增删改查。界面如下图4-16所示。

图4-16 资源管理界面界面图

5系统测试

系统的前台、后台、数据库完成以后,这个系统才算是完成了一半,我们在这之后要对系统进行最后的一个阶段,那就是测试了,测试对一个系统来说是非常重要的,有的时候开发完一个系统,如果测试不合格的话,这个系统是没有办法进行投入使用的,所有我们要用测试对系统的功能进行检验,把不完善的功能尽量完善,把出现的bug解决掉,然后给用户呈现出一个完美的系统。通过对系统最后一步的测试,使得开发人员对自己的系统更加有信心,更加积极的为后期的系统版本的更新提供支持。

5.1系统测试的目的

一个系统测试的目的就是检验系统在真正的工作环境、条件下是不是能够正常运行,各种功能能不能符合设计的要求,通过测试发现系统当中存在的一些潜在的错误,然后对系统进行改进,使得系统最终以完美的形式展现给用户,提高用户使用过程中的体验度,真正达到项目的实际使用目的。

5.2 系统测试用例

系统测试包括:管理员登录功能测试、商品查看功能测试、商品添加功能测试、

购买信息功能测试,如表5-1、5-2、5-3、5-4所示:

管理员登录功能测试:

表5-1 管理员登录功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

登录模块测试

登录成功的情况

管理员可以通过浏览器进入到NFT购物网站后台登录界面,输入用户名:admin和密码admin后,点击“登录”按钮。

成功登录到管理员管理的界面

正确

登录模块测试

登录失败的情况

管理员可以通过浏览器进入到NFT购物网站后台登录界面,输入用户名:admin和密码111后,点击“登录”按钮。

系统提示“用户名和密码不匹配”

正确

商品查看功能测试:

表5-2 商品查看功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

查询商品信息功能测试

查询成功的情况

用户在导航栏中点击“商品”,输入关键词查询商品,输入的商品在系统中存在,显示查询商品信息 

查询成功

正确

商品添加界面测试:

表5-3 管理员添加商品界面测试表

测试名称

测试功能

操作过程

预期结果

测试结果

 商品添加模块测试

商品添加成功的情况

在“商品管理”菜单中点击“商品管理”会显示出所有的商品信息,点击“添加”,输入商品信息,输入正确的信息后,点击“提交”按钮。

提示添加成功

正确

商品添加模块测试

商品添加失败的情况

在“商品管理”菜单中点击“商品管理”会显示出所有的商品信息,点击“添加”,不输入商品标题,其他信息正常填写后,点击“提交”按钮。

提示“添加失败,标题不能为空”

正确

购买信息功能测试:

表5-4 购买信息功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

加入购买信息功能测试

购买的情况

用户在商品详情页面,点击“加入购买信息”,然后在“购买信息”界面,点击“购买”按钮,进行付款。

加入购买信息购买成功

正确

5.3 系统测试结果

本次开发的系统是网上购物系统,主要功能就是实现用户的在线购买,通过对管理员登录功能测试、商品查看功能测试、商品添加功能测试、购买信息功能测试这几个方面的测试可以看出系统的基本可以实现用户对商品购买的功能,而且在测试的过程中也对界面的展示进行了查看,发现界面并没有出现扭曲、混乱等情况,能够满足用户的需求,系统运行良好,是可以进行投入使用的。

结论

网络大环境下,电子商务的商业模式已经遍及全国各地,由于人们生活水平的提高以及生活节奏的加快,让人们也已经爱上这种购物模式。本次开发的NFT购物网站即是基于目前电子商务模式而建设的,其开发目的是给用户提供一个全新的交易环境,提高用户购物的体验度,系统的开发不仅可以实现购物、支付,还能联系客服咨询商品或订单问题,功能非常多样。

该NFT购物网站使用的开发环境是功能强大的python+MYSQL,在大学的学科中重点学习了这两中技术,在对这些技术学习、熟悉之后,结合对系统进行的需求分析顺利的完成了本次项目的设计。在最初接到任务书的那一刻,比较迷茫,没有任何的思路,在经过了老师的指导以后,调查了一些购物系统相关的资料后,慢慢的有了头绪,开始入手开题,明确了系统的内容,对系统进行可行性的分析,确定系统可行以及功能内容以后,就按照开题初步设计的内容进行完善,慢慢补充、学习,最终结束了程序的开发,也完成了论文的写作。这一过程,虽然艰辛,但也学习到了很多,对项目开发流程也有了一个新的认识,动手能力也得到了提高,这正是书本上所学习不到的。

经过开发本项目,让我非常有成就高,与此同时我对程序的开发更加感兴趣了,信息技术真的很强大,也很深奥,在以后工作中,我将会寻找与其相关工作,继续深入学习,开发出更优秀的项目。

参考文献

[1]Krill P .Astral unveils ‘extremely fast’ Python package installer[J].InfoWorld.com,2024,

[2]Souto G H ,Moradi A .Yang  Zhang’s realized volatility: Automated estimation in Python[J].Software Impacts,2024,19100613-.

[3]谭世雨,余江维,杜志慧.基于Python的中医医案智能收集系统研究[J].亚太传统医药,2024,20(01):163-167.

[4]Han J ,Lee J S ,Yun S H , et al.PyRINEX: a new multi-purpose Python package for GNSS RINEX data.[J].PeerJ. Computer science,2024,10e1800-e1800.

[5]ZhangZhou J ,He C ,Sun J , et al.Geochemistry π: Automated Machine Learning Python Framework for Tabular Data[J].Geochemistry Geophysics Geosystems: G3,2024,25(1):

[6](Roche) S F A (Bayer) H J .Open-Source Python Tool PyParse: Automated, Flexible And Fast LC-MS Data Analysis of HTE Data[J].Synfacts,2024,20(1):0084-.

[7]黎孟雄,李杨.基于Python的MOOC评论情感分析系统的研究与设计[J].湖南工业职业技术学院学报,2023,23(06):19-25.DOI:10.13787/j.cnki.43-1374/z.2023.06.005.

[8]林鹏程.基于STM32与Python的智慧教室控制系统[J].物联网技术,2023,13(12):91-94.DOI:10.16667/j.issn.2095-1302.2023.12.024.

[9]谢春丽.浅谈Python语言的发展与应用分析[J].中国新通信,2023,25(22):77-79.

[10]甘宁.互联网时代B2C电子商城购物网站的应用与测试[J].信息与电脑(理论版),2021,33(14):98-100.

[11]艾方亮.购物网站用户行为分析系统的优化设计与实现[D].东南大学,2021.DOI:10.27014/d.cnki.gdnau.2021.001170.

[12]谭子攀,杨振南,潘学文.基于web前端的移动商业购物网站[J].电脑知识与技术,2021,17(13):266-267+273.DOI:10.14004/j.cnki.ckt.2021.1425.

[13]曹艳琴.基于HTML5的Web App的购物网站设计分析[J].数字技术与应用,2021,39(04):170-172.DOI:10.19695/j.cnki.cn12-1369.2021.04.56.

[14]马潇.基于J2EE和Lucene搜索架构的网络购物平台的设计与实现[D].东南大学,2021.DOI:10.27014/d.cnki.gdnau.2021.001016.

[15]刘锦康,赵征.基于改进WebML建模的B2C购物网站网页界面视觉展示系统设计[J].现代电子技术,2021,44(08):40-44.DOI:10.16652/j.issn.1004-373x.2021.08.009.

[16]李俊甲,许烨.基于Java的购物网站设计与开发[J].信息与电脑(理论版),2020,32(23):86-88.

[17]罗业丁,杨振南,贺英健.基于WEB前端技术的校园购物网站的设计与实现[J].信息记录材料,2020,21(08):209-210.DOI:10.16009/j.cnki.cn13-1295/tq.2020.08.125.

[18]陈猛.基于Java的购物网站设计与开发[J].农家参谋,2020,(08):200.

[19]李浩冉.基于ASP的购物网站设计[J].数码世界,2020,(02):41.

[20]薛茹.基于JavaWeb的图书购物网站的设计与实现研究[J].南方农机,2020,51(02):217.

 

通过这样设计与开发这样一个系统,首先向我们老师、同学和朋友表达真诚的感谢。没有指导老师的指导和平日子的教导,我也不能够学到如此多的专业知识。另外,也佩服老师兢兢业业的工作态度,给我们做好了表率。系统开发技术要学习的东西很多,前台框架、后台框架、业务流程、数据结构、操作系统等各种知识非常的丰富,都需要慢慢的专研。在这里,首先感谢老师细心的教导,我只想说一句:“老师,谢谢您,您辛苦了!有您在,大学生活才更加的充实。”另外,我要感谢我的室友,由于知识掌握得不够产生各种问题,正因为有了你们的帮忙,给我提出很多很好的建议,才能更好的解决系统开发问题。同时,我也应该感谢那些计算机专业的先哲们,正是由于有这么一群人,才能把这样的专业研究得如此透彻,才能助力新世界的诞生。你们的理论,是我们一生学习的内容,你们的成就,是我们一生追求的目标。

最后,也希望自己在未来的道路上能够走得更远,不辜负在大学的学习,以及老师们的细致的教导。

点赞+收藏+关注 → 私信领取本源代码、数据库

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值