母婴商城
1.摘要
1.1选题依据
在2021年五月的最后一天,三胎开放政策如晴天霹雳般出现,在某些人一胎还没有生的时候,国家已经开放三胎政策了。80,90的人们是响应国家号召的主力军,但抚养一个孩子长大的花费已经不菲,更何况是三重加倍,单孕育时的母婴检查费用和母亲营养费以及孩子诞生后的生活用品费就是一笔不小的花销。
1.2选题目的与意义
目前网络市场上虽然有众多的母婴用品网络店铺,但良莠不齐,还没有几家正规,大型母婴用品、儿童服饰、儿童玩具等产品的专业营销代理商。仅在小规模的网络个体私营中涉及母婴产品及儿童用品。开一家专门的大型的母婴用品营销商城网站很有必要,一来可以占据大量市场空间,二来可以抢占市场份额。
2. 系统分析
2.1可行性分析
2.1.1技术可行性
网站搭建技术发展至今已经逐渐完善,JAVA,Python,C及C++以及不可或缺的html,网站的搭建可以从很多技术入手,此次我们决定从python中的django入手,搭建动态响应交互式交易网站。
2.1.2操作可行性
Django简介
Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。
Django 是一个开放源代码的 Web 应用框架,由 Python 写成。
Django 遵守 BSD 版权,初次发布于 2005 年 7 月, 并于 2008 年 9 月发布了第一个正式版本 1.0 。
Django 采用了 MVT 的软件设计模式,即模型(Model),视图(View)和模板(Template)。
Django网站设计
Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(Do Not Repeat Yourself)原则
2.2需求分析
2.2.1功能需求
功能点:
(1)注册功能。顾客首先要注册为网上商城的用户。注册时只要填写登录用户名、密码、送系电子信箱3项信息即可。注册后,用户可继续如实填写详细个人信息及收货人信息,同时可修改密码、查询及修改订单。
(2)选择产品功能。顾客浏览网上商城,
将自己需求的产品放入到购物车中(可在网上商城首页、专柜首页、产品小类、专卖店首页、搜索结果页面、产品详细信息页面进行该操作),可连续添加商品。
(3)管理购物车。顾客选择完商品后可进入购物车页面,查看自己要购买的商品,可修攻某一商品数量、取消购买某商品和清空整个购物车。
(4)订单功能。顾客确定购物车中的商品后提交订单,如顾客已填写收货人信息,则页面显示该信息并由顾客确认。如尚未填写则显示相应表单请其填写,系统记录顾客提交的收货人信息以便其下次购物时使用。顾客提交订单后可在网上商城查询该订单,并可对尚未处里的订单进行取消、修改等操作。
(5)付款功能。顾客在订单被销售方确认后,要选择付款方式,并付款给销售方,然后才可以收到货。
(6)产品展示。将母婴用品品类在首页展示,用户能够清晰明了地了解到平台上涵盖的用品品类,方便用户选品下单,促成购买。
(7)在线下单。通过线上的方式,下单购物,选择收货地址,填写正确额信息,然后等待物流的到达。
(8)母婴资讯。在资讯上带来母婴上的资讯信息,帮助用们好的照顾自己的孩子,特别是次为人母的用户,*需要学习更多的知识和方法。
(9)育儿社区:是给用户们交流自己的育儿心经,分享宝宝趣事、准妈妈孕事、育儿心得等,在这个母婴网站平台上,能够与不同的育儿者进行交流。
2.2.2性能需求
1.数据精确度
- 交易价格保留到分。
2.适应性
- 购物过程简单明了,产品图片清楚,产品信息描述准确。功能全面符合大众需求,如下图所示:
3.时间特性
- 在管理员执行增加删除等操作时,数据库响应时间要求在短时间内(如2秒);
- Web用户浏览时,页面响应时间要求在4秒之内。
4.支持软件:
(1)客户端软件
-
操作系统:Windows NT/2000/XP Linux UNIX
-
浏览器:IE、Firefox、Chrome等
(2)服务器端软件
-
操作系统:Windows NT/2000 Server 或更高版本、Linux、UNIX
-
Web服务器:Apache2.0以上版本
-
数据库产品:MYSQL5.0 以上版本
-
服务器脚本:PHP5.2以上版本
2.2.3设计约束
- 商品方面只涉及母婴用品一类,不参与售卖其余商品。
- 相关商品的网络售卖需持有相关销售许可证明且检验合格后方可在网站上架向大众售卖。
- 技术方面采用Django搭建网站框架
3.软件设计
3.1功能概括
- (1)网站需要提供搜索功能,便于用户搜索商品。
- (2)搜索结果需要根据销量、价格、上架时间和收藏数量进行排序。
- (3)商品详情应有尺寸、原价、活动价、图片展示、收藏功能和购买功能。
- (4)用户购买后应看到订单信息,订单信息包括支付金额、购买时间和订单状态。
- (5)商品购买应支持在线支付,如支付宝或微信支付等功能。
- (6)目前顾客数量约有3000人,实体店暂无进销存系统。
3.2设计说明
3.2.1概要设计
-
网站首页应设有导航栏,并且所有功能展示在导航栏,在导航栏的下面展示各类的热销商品,当单击商品图片时即可进入商品详细页面,导航栏上方设有搜索框,便于用户搜索相关商品。
-
商品列表页将所有商品以一定规则排序展示,用户可以从销量、价格、上架时间和收藏数量设置商品的排序方式,并且在页面的左侧设置分类列表,选择某一分类可以筛选出相应的商品信息。
-
商品详细页展示某一商品的主图、名称、规格、数量、详细介绍、购买按钮和收藏按钮,并在商品详细介绍的左侧设置了热销商品列表。
-
购物车页面只能在用户已登录的情况下才能访问,它是将用户选购的商品以列表形式展示,列表每行数据包含了商品图片、名称、单价、数量、合计和删除操作,用户可以增减商品的购买数量,并且能自动计算费用。
-
个人中心页面用于展示用户的基本信息及订单信息,只能在用户已登录的情况下才能访问。
用户登录注册页面是共用一个页面,如果用户账号已存在,则对用户账号密码验证并登录,如果用户不存在,则对当前的账号密码进行注册处理。 -
数据库使用MySQL 5.7以上版本,数据表除了Django内置数据表之外,还需定义商品信息表、商品类别表、购物车信息表和订单信息表。
3.2.2详细设计
根据概要设计说明,分别对网站的网页设计和数据库的数据结构进行具体设计说明。一共设计了6个网页界面,每个网页界面的设计说明如下:
(1)首页设计
网站首页一共划分了5个不同的功能区域:商品搜索功能、网站导航、广告轮播、商品分类热销、网站尾部,每个功能的设计说明如下:
-
a. 商品搜索功能
用户输入关键字并单击搜索按钮,网站将进行数据查询处理,将符合条件的商品在商品列表页展示;如果没有输入关键字的情况下单击搜索按钮,网站直接访问商品列表页并展示所有的商品信息。 -
b. 网站导航
设有首页、所有商品、购物车和个人中心的地址链接,每个链接分别对应网站首页、商品列表页、购物车页面和个人中心页面。 -
c. 广告轮播
以图片形式展示,用于商品的广告宣传。 -
d. 品分类热销
分为今日必抢和分类商品。今日必抢是在所有商品中获取前十名销量最高的商品进行排序;分类商品是在某分类的商品中获取前五名销量最高的商品进行排序。 -
e. 网站尾部
这是每个网站的基本架构,用于说明网站的基本信息,如备案信息、售后服务、联系我们等。
(大致如下图)
(2)商品列表页设计
商品列表页分为4个功能区域:商品搜索功能、网站导航、商品分类和商品列表信息,每个功能的设计说明如下: -
a. 商品分类
当用户选择某一分类的时候,网站会筛选出对应的商品信息并在右侧的商品列表信息展示。 -
b. 商品列表信息
提供了销量、价格、上架时间和收藏数量的排序方式,商品默认以销量排序,并设置分页功能,每一页只显示6条商品信息。
(3)商品详细页设计
商品详细页分为5个功能区:商品搜索功能、网站导航、商品基本信息、商品详细介绍和热销推荐,每个功能的设计说明如下: -
a. 商品基本信息
包含了商品的规格、名称、价格、主图、购买数量、收藏按钮和购买按钮。收藏按钮使用JavaScript脚本完成收藏功能,购买按钮将商品信息和购买数量添加到购物车。 -
b. 商品详细介绍
以图片形式展示,用于描述商品的细节内容。 -
c. 热销推荐
在所有商品中(排除当前商品之外)获取并展示前五名销量最高的商品。
(4) 购物车页设计
购物车页面分为3个功能区域:商品搜索功能、网站导航、商品的购买费用核算。商品的购买费用核算允许用户编辑商品的购买数量、选择购买的商品和删除商品,结算按钮根据购买信息自动跳转到支付页面。
(5)个人中心页设计
个人中心页面分为4个功能区域:商品搜索功能、网站导航、用户基本信息和订单信息,用户基本信息和订单信息的设计说明如下: -
a. 用户基本信息
在网页的左侧位置,展示了用户的头像、名称和登录时间,按钮功能分别有购物车页面链接和退出登录。 -
b. 订单信息
以数据列表展示,每行数据包含了订单编号、价格、购买时间和状态,并设置分页功能,每一页显示7条订单信息。
(6) 登录注册页设计
用户登录注册页面分为3个功能区域:商品搜索功能、网站导航、登录注册表单。登录注册表单是共用一个网页表单,如果用户账号已存在,则对用户账号密码验证并登录,如果用户不存在,则对当前的账号密码进行注册处理。
(7)数据库表设计
从网站的6个页面看到,每个页面的设计和布局都需要数据支持,比如商品的规格、名称、价格、主图等数据信息。由于Django内置了用户管理功能,已为我们提供了用户信息表,因此我们只需定义商品信息表、商品类别表、购物车信息表和订单信息表。 -
商品信息表
-
商品类别表
-
购物车信息表
-
订单信息表
综合上述,我们将商品信息表、商品类别表、购物车信息表、订单信息表和Django内置用户表的数据关系进行整理,如下图所示:
4.项目构建与功能完善
4.1项目构建
4.1.1命令行模式创建django项目
在搜索栏输入cmd
,出现命令提示符后,点击打开
或者以管理员身份运行
都可以。
进入命令行模式后展示如下:
输入命令 d:
使路径切换到D盘,使用mkdir
函数创建一个新目录,因为写这个的时候我已经把项目完成的差不多了,所以这个目录就是做一个例子
打开D盘可以看到文件夹创建成功
然后使用cd
函数,使路径切换到新创建的文件夹,随后输入指令:
django-admin startproject 项目名
,这个指令的意思很明显,创建一个django类的项目
项目创建成功后,原本空荡荡的Djangoxiangmu文件夹应该多了些许文件,如下:
4.1.2 查看项目
我们可以用IDE打开才创建的项目看一看
找到项目文件夹所在,注意选的是刚才创建的项目
名,然后点击🆗
打开后项目展示如下:
4.1.3文件讲解
可以看到项目创建成功后,自动生成了很多文件
__init__.py
初始化文件,开始为空,在django项目中可以告诉Django用pymysql来代替默认的MySQLdb
import pymysql
#告诉Django用pymysql来代替默认的MySQLdb
pymysql.install_as_MySQLdb()
__init__
.py文件最常用的作用是标识一个文件夹是一个 python包。
__init__
.py文件的另一个作用是定义模糊导入时要导入的内容。
如果想对该文件有更多了解【点链接】
-
asgi.py
用于启动异步通信服务,比如实现在线聊天等异步通信功能。
-
settings.py
项目的配置文件,通过settings可以看出这个文件夹有很大作用,基本功能有改变时区和语言等。
-
urls.py
项目的路由设置文件,可以设置项目网站的具体网址内容。
-
wsgi.py
全称为Python Web Server Gateway Interface
,即Python服务器网关接口
,是 Python应用与Web服务器之间的接口,用于Django项目在服务器上的部署和上线,一般不需要修改。
-
manage.py
命令行工具
,内置多种方式与项目进行交互。在命令提示符窗口下,将路径切换到MyDjango项目并输入python manage.py help,可以查看该工具的指令信息。
查看manage.py
4.1.4调试检查设置初设与运行
项目都创建完了,我们运行检查一下
点击网址
英文界面显示你已经成功创建一个django项目了,英文看着不舒服就换成中文。
再次双击网址可以看到语言已经改变。
项目自动生成的文件(或者说应用什么的)在网站搭建上显然是不够用的,我们需要新建一个应用,在后续的学习中说不定会新建更多应用。
-
指令:
python manage.py startapp 应用名
将上述指令在终端(terminal)输入
进入终端只需要点击一下terminal就好
我以index01作新应用名,本来想用index的,后来出现错误显示是 -
'index' conflicts with the name of an existing Python module and cannot be used as an app name. Please try another name.
翻译过来就是: -
“index”与现有Python模块的名称冲突,不能用作应用程序名称。请改名。
(我记得之前有用过这个单词做app名,不知道是不是这个原因。)
指令输入后是没有任何返回参数的,刷新一下左侧项目列表,如果你没打错字应该就是以下场景:
当然,如果项目创建不止于此,还要在settings.py
文件配置好(添加该应用)。
首先,项目配置一般都在settings.py
文件进行,该文件只在主应用(也就是一开始用命令行模式创建的项目)下存在,不能进行偏移。
所以我们找到主应用下的该文件,找到INSTALLED__APPS
,在包括的应用中添加我们新建的应用,引号是英文引号,后面的英文逗号可以加上,以免后续在添加新应用时忘记(注册的应用之间用英文逗号隔开)。
-
在主路由配置文件进行路由分发
在主应用中找到urls.py
文件,添加子路由
随后在子应用中创建子路由文件urls.py
-
然后,在子应用的试图文件中配置视图函数(先测试一下)
-
随后把子路由文件配置一下
-
重新运行一下看看效果
欧克没问题在浏览器输入看看
欧克出问题了,看了下是配置文件的问题,又重新看了下,我一度以为是主路由的问题,想用正则写
后来发现
我设置的路由路径是index
,输入网址却习惯性的写成了index01,将网址改正以后就好了(改正成index01)
-
将文件迁移一下
-
执行指令
python manage.py migrate
-
创建一个超级管理员
首先用户名可以自己随便起,记得就好,电子邮件地址只要符合格式就好,输入密码时不会有显示,所以输入后敲回车就好,只不过需要二次确认,再次输入确认就好,最后在接下来的问题中输入y
超级管理员就创建好了
进入后端查看一下:
输入网址http://127.0.0.1:8000/admin
输入账号密码
创建成功:
4.1.5项目架构一览
- 项目名称:babies
- APP应用名称:index、commodity、shopper
- 创建文件夹media、pstatic和templates
项目构建完成图如下:
4.2功能完善
4.2.1路由分发
创建应用的路由文件(子路由) - urls.py
每个应用(App)均创建一个路由文件urls.py,目前没有什么具体内容,只写一条语句,定义一个空列表urlpatterns。
(1) 创建index应用的路由文件
(2) 创建commodity应用的路由文件
(3) 创建shopper应用的路由文件
(4) 定义项目的路由集合
使项目的urls.py的urlpatterns指向每个应用的urls.py,具体配置如下:
(5)主路由文件代码说明
babies文件夹的urls.py定义了5条路由信息,分别是Admin站点管理、首页地址(项目应用index的urls.py) 、商品信息(项目应用commodity的urls.py) 、购物车信息(项目应用shopper的urs.py)和媒体资料。其中, Admin站点管理在创建项目时己自动生成,一般情况下无须更改。整个babies文件夹的urls.py的代码说明如下:
from django.contrib import admin:导入内置Admin功能模块。
from django.urls import path,include:导入Django的路由函数模块。
urlpatterns:代表整个项目的路由集合,以列表格式表示,每个元素代表一条路由信息。
path('admin/', 'admin.site.urls'):设定Admin管理系统的路由信息。
’admin/'代表127.0.0.1:8000/admin的路由地址,admin后面的斜杠是路径分隔符,其作用等同于计算机中文件目录的斜杠符号; admin.site.urls指向内置Admin功能所自定义的路由信息,可以在Python目录Lib\site-packages\django\contrib\admin\sites.py中找到具体的定义过程。
path('', include(('index.urls', 'index'), namespace='index'))
路由地址为"/",即 127.0.0.1:8000,通常是网站的首页;路由函数include是将该路由地址分发给项目应用index的urls.py处理。(说明:include((pattern_list,app_namespace),namespace=None) app_namespace:应用命名空间;namespace:实例命名空间)
path('commodity', include(('commodity.urls', 'commodity'), namespace='commodity'))
路由地址为"/commodity",即127.0.0.1:8000/commodity,这是商品详细和商品列表页面;路由函数include是将该路由地址分发给项目应用commodity的urls.py处理。
path('shopper', include(('shopper.urls', 'shopper'), namespace='shopper'))
路由地址为 “/shopper”,即127.0.0.1:8000/shopper,这是购物车、个人中心、用户注册等页面;路由函数include是将该路由地址分发给项目应用shopper的urls.py处理。
re_path('media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT}, name='media')
路由地址为"/media/xxx",即127.0.0.1:8000/media/xxx,这是媒体定义的路由地址,路由函数re_path表示允许在路由地址里面设置正则表达式。
设置商城的路由地址
我们已在babys文件夹的urls.py分别为项目应用index、shopper和commodity设置路由分发功能,本节将会在项目应用index、shopper和commodity的urls.py定义网站首页、商品列表页、商品详细页、购物车页面、个人中心页面和用户登录注册页面的路由地址。
(6) 编写index应用的视图views.py
-
indexView为视图函数的名称
-
index.html对应模板文件夹下的一个模板文件
-
目前index.html为“母婴商城首页”信息
-
render()用于渲染模板页面
(7) 配置index应用的路由urls.py
在路由模式列表里添加一个路由,指向上面定义的视图函数 - indexView
- (1)第一个参数为空字符串,这是设置具体的路由地址,由于babies文件夹的urls.py的路由分发为path(’’, include((‘index.urls’, ‘index’), namespace=‘index’)) , 即代表网址127.0.0.1:8000,而index的urls.py定义的路由地址index设为空字符串,那么路由地址index的网址为127.0.0.1:8000。
- (2)第二个参数为indexView,这是指向项目应用index的views.py的某个视图函数或视图类,当用户在浏览器访问127.0.0.1:8000的时候, Django将接收到一个HTTP请求,从该请求中获取路由地址并与自身的路由列表进行匹配,如果路由地址匹配成功, Django将HTTP请求交给路由地址指向的某个视图函数或视图类进行业务处理。
- (3)第三个参数为name='index’,这是函数path的可选参数,该参数是命名路由地址。实际开发中必须为每个路由地址进行命名,可以在视图或模板中使用路由名称生成相应的路由地址。
(8) 测试index应用的路由配置
- 启动项目,访问
http://127.0.0.1:8000
访问界面就是先前的首页模板
(9) 编写commodity应用的视图views.py
上述代码分别定义了商品列表页的路由地址commodity和商品详细页的路由地址detail,路由地址的定义说明如下:
- (1)项目应用commodity的urls.py路由空间是path(‘commodity’, include((‘commodity.urls’, ‘commodity’), namespace=‘commodity’)),因此路由commodity为127.0.0.1:8000/commodity.html,路由detail为127.0.0.1:8000/commodity/detail/2.html。
- (2)路由detail设置了路由变量id,该变量以整数型表示,它可以代表1、2、3 等整数,变量id对应商品信息表的主键id,通过改变变量id的数值可以查看不同商品的详情。
- (3)路由地址的末端设置了“.html” ,这是一种伪静态URL技术,可将网址设置为静态网址,用于SEO (Search Engine Optimization)搜索引擎的爬取,如百度、谷歌等。此外,在末端设置“.html”是为变量id设置终止符,假如末端没有设置“.html” ,并且路由变量为字符串类型,在浏览器上输入无限长的字符串,路由也能正常访问。
- (4)路由commodity和detail的业务逻辑处理分别指向项目应用commodity的views.py定义的视图函数commodityView和detailView.
(10)测试commodity应用的路由配置
输入网址测试:http://127.0.0.1:8000/commodity.html
(11) shopper应用的配置
编写三个页面shopper.html、login.html、shopcart.html
(12) 编写shopper应用的视图views.py
(13) 编写shopper应用的路由urls.py
上述代码定义了4条路由地址,每个路由所对应的功能说明如下:
- (1)路由shopper代表个人中心页,它的路由空间是path(‘shopper’, include((‘shopper.urls’ ‘shopper’),namespace=‘shopper’),因此路由地址为127.0.0.1:8000/shopper.html,个人中心页的业务逻辑由项目应用shopper的views.py定义的视图函数shopperView实现。
- (2)路由login代表用户登录注册页,路由地址为127.0.0.1:8000/shopper/login.html,它的业务逻辑由项目应用shopper的views.py定义的视图函数loginView实现。
- (3)路由logout实现个人中心的用户注销功能,路由地址为127.0.0.1:8000/shopper/logout.html,它的业务逻辑由项目应用shopper的views.py定义的视图函数logoutView实现。
- (4)路由shopcart代表购物车信息页,路由地址为127.0.0.1:8000/shopper/shopcart.html 它的业务逻辑由项目应用shopper的views.py定义的视图函数shopcartView实现。
(14)测试shopper应用的路由配置
启动项目,访问http://127.0.0.1:8000/shopper.html
4.2.2定义商城数据模型
(1) commodity应用的模型定义
打开项目应用commodity的models.py文件,在文件中定义模型Types和CommodityInfos,它们以类的形式表示,并且继承父类Model,详细的定义过程如下:
(2)shopper应用的模型定义
打开项目应用shopper的models.py文件,在文件中定义模型CartInfos和OrderInfos,模型的定义过程与模型Types和CommodityInfos相似,如下所示:
(3)使用终端命令生成数据迁移文件
python manage.py makemigrations
执行命令后查看生成的文件
文件查看
(4) 使用终端命令进行数据迁移生成数据表
0001_initial.py文件将models.py定义的模型生成数据表的脚本代码,该文件的脚本代码可被migrate指令执行,migrate指令会根据脚本代码的内容在数据库里创建相应的数据表,只要在PyCharm的Terminal窗口下输入migrate指令即可完成数据表的创建。
python manage.py migrate
4.2.3视图函数编写
首页视图
视图函数的定义在各应用的views.py
文件中设置,除开主应用的视图,其他子应用的视图只会给上一些注释,表示这是创建视图函数的地方。
如:
# Create your views here.
关于这一段代码:
# title = '首页'
# classContent = ''
# # 商品信息
# commodityInfos = CommodityInfos.objects.order_by('-sold').all()[:8]
# #商品类别
# types = Types.objects.all()
# #宝宝服饰
# c1 = [x.seconds for x in types if x.firsts == '儿童服饰']
# clothes = CommodityInfos.objects.filter(types__in=c1).order_by('-sold')[:5]#__in 匹配符
# #奶粉辅食
# f1 = [x.seconds for x in types if x.firsts == '奶粉辅食']
# food = CommodityInfos.objects.filter(types__in=f1).order_by('-sold')[:5]
# #儿童用品
# g1 = [x.seconds for x in types if x.firsts == '儿童用品']
# goods = CommodityInfos.objects.filter(types__in=g1).order_by('-sold')[:5]
其中
- title变量:用于设置网页标签内容,用于html中的title标签中
- classContent变量:控制导航栏样式,首页样式设置为class=’active’。
- commodityInfos变量:查询模型CommodityInfos销量最高的前8条数据,显示在首页“今日必抢”栏目内。
- types变量:查询模型Types的全部数据,用于c1, f1, g1的数据类型筛选。
- 而像c1这种:在变量types的基础上,筛选types中“儿童服饰”的所有数据,并以列表格式表示。
- clothes则是:以c1做模型CommodityInfos查询条件,获取销量排名前5的数据,并显示在首页“宝宝服饰”栏目。
其余相似变量皆可以此类推。
return部分是设置返回值,把视图函数中定义的变量传递给模板,然后由模板引擎对这些变量进行解析并渲染到网页上。
将types数据渲染到模板页面index.html上
示例代码截图:
基础效果展示:
5.总结
在本学期的Web程序设计课程中,不同于其他Web课程,本课采用Django进行网站的搭建,数据库的链接及网站基础功能的完善。在其他课程中,老师教授我们采用HTML搭建网站骨架,再采用CSS与JavaScript脚本进行美化与填充。在网站后端处理方面老师言之甚少,而Web程序设计这门课,老师以Django为基础构建出一个功能完善且运行无忧的网站,在Django学习的过程中,我们学会了如何更改Django的数据库设置,将原本的sqlite3数据库更改为链接外部的MySQL数据库,并且通过建立模型类进行数据迁移从而在Navicat生成对应表。通过更改路由设置,编写视图函数,构建相应的HTML模板,在创建HTML文件时,通过老师的讲述,我们也知道了在Django项目中的HTML文件的不同,并且老师还带我们学习如何将视图,路由,HTML文件,数据库数据信息连接,从而在网页界面中显示数据库中的数据信息。在Django项目中,HTML文件中的一些操作指令会与环境冲突,老师则带着我们一起学习,指导我们一步步解决问题,引导我们遇到问题不能等老师解决,要学会自己去发现,去解决。
在学习数据库与Django的数据连接时,老师教导我们以各种方式安装包,且利用安装的包,通过PyCharm终端的shell模式,进行数据库信息的增删改查。以往我们熟悉在专门的数据库软件Navicat中操作数据,在学习本专业课程后,了解到以PyCharm中的Django进行数据的增删改查,进一步方便我们在网站前端的学习。