2.6 本章小结
系统总体结构设计需要由需求工程师和开发人员共同商议,针对用户需求来商量如何设计系统各个功能模块以及各个模块的数据结构。本章商城网站的概要设计如下:
(1)网站首页应设有导航栏,并且所有功能展示在导航栏,在导航栏的下面展示各类的热销商品,当单击商品图片即可进入商品详细页面,导航栏上方设有搜索框,便于用户搜索相关商品。
(2)商品列表页将所有商品以一定的规则排序展示,用户可以从销量、价格、上架时间和收藏数量设置商品的排序方式,并且在页面的左侧设置分类列表,选择某一分类可以筛选出相应的商品信息。
(3)商品详细页展示某一商品的主图、名称、规格、数量、详细介绍、购买按钮和收藏按钮,并在商品详细介绍的左侧设置了热销商品列表。
(4)购物车页面只能在用户已登录的情况下才能访问,它是将用户选购的商品以列表形式展示,列表的每行数据包含了商品图片、名称、单价、数量、合计和删除操作,用户可以增减商品的购买数量,并且能自动计算费用。
(5)个人中心页面是展示用户的基本信息及订单信息,只能在用户已登录的情况下访问。
(6)用户登录和注册页面共用一个页面,如果用户账号已存在,则对用户账号密码验证并登录,如果用户不存在,则对当前的账号密码进行注册处理。
(7)数据库使用MySQL 5.7以上版本,数据表除了Django内置数据表之外,还需定义商品信息表、商品类别表、购物车信息表和订单信息表
整个项目共有7个文件夹和1个文件,每个文件夹和文件的功能说明如下:
(1)babys文件夹与项目名相同,该文件夹下含有文件__init__.py、asgi.py、settings.py、urls.py和wsgi.py
(2)commodity是Django创建的项目应用(App),文件夹含有__init__.py、admin.py、apps.py、models.py、tests.py和views.py文件,它主要实现网站的商品列表页和商品详细页。
(3)index是Django创建的项目应用(App),该文件夹含有的文件与项目应用(App)commodity相同,它主要实现网站首页。
(4)shopper也是Django创建的项目应用(App),它主要实现网站的购物车页面、个人中心页面、用户登录注册页面、在线支付功能等。
(5)media是网站的媒体资源,用于存放商品的主图和详细介绍图。
(6)pstatic是网站的静态资源,用于存放网站的静态资源文件,如CSS、JavaScript和网站界面图片。
(7)templates用于存放HTML模板文件,即网站的网页文件。
(8)manage.py是项目的命令行工具,内置多种方法与项目进行交互。在命令提示符窗口下,将路径切换到项目babys并输入python manage.py help,可以查看该工具的指令信息。
Django已为我们设置了一些默认的配置信息,比如项目路径、密钥配置、域名访问权限、App列表和中间件等,每个配置说明如下:
(1)项目路径BASE_DIR:主要通过os模块读取当前项目在计算机系统的具体路径,该代码在创建项目时自动生成,一般情况下无须修改。
(2)密钥配置SECRET_KEY:这是一个随机值,在项目创建的时候自动生成,一般情况下无须修改。主要用于重要数据的加密处理,提高项目的安全性,避免遭到攻击者恶意破坏。密钥主要用于用户密码、CSRF机制和会话Session等数据加密。
(3)调试模式DEBUG:该值为布尔类型。如果在开发调试阶段,那么应设置为True,在开发调试过程中会自动检测代码是否发生更改,根据检测结果执行是否刷新重启系统。如果项目部署上线,那么应将其改为False,否则会泄漏项目的相关信息。
(4)域名访问权限ALLOWED_HOSTS:设置可访问的域名,默认值为空列表。当DEBUG为True并且ALLOWED_HOSTS为空列表时,项目只允许以localhost或127.0.0.1在浏览器上访问。当DEBUG为False时,ALLOWED_HOSTS为必填项,否则程序无法启动,如果想允许所有域名访问,可设置ALLOW_HOSTS = ['*']。
(5)App列表INSTALLED_APPS:告诉Django有哪些App。在项目创建时已有admin、auth和sessions等配置信息,这些都是Django内置的应用功能。
(6)中间件MIDDLEWARE:这是一个用来处理Django请求(Request)和响应(Response)的框架级别的钩子,它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。
(7)路由入口设置ROOT_URLCONF:告诉Django从哪个文件查找整个项目的路由信息,默认值是与项目同名的文件夹的urls.py文件,即babys文件夹的urls.py。
(8)模板配置TEMPLATES:主要配置模板的解析引擎、模板的存放路径地址以及Django内置功能的模板使用配置信息。
(9)WSGI配置WSGI_APPLICATION:告诉Django如何查找WSGI文件,并从WSGI文件启动并运行Django系统服务,默认值是与项目同名的文件夹的wsgi.py文件,即babys文件夹的wsgi.py。
(10)数据库配置DATABASES:配置数据的连接信息,如连接数据库的模块、数据库名称、数据库的账号密码等,默认连接SQLite数据库。
(11)内置Auth认证的功能配置AUTH_PASSWORD_VALIDATORS:主要实现Django的Auth认证系统的内置功能。
(12)国际化与本地化配置:包含配置属性LANGUAGE_CODE、TIME_ZONE、USE_I18N、USE_L10N、USE_TZ,主要实现网站的语言设置、不同时区的时间设置等。
(13)静态资源配置STATIC_URL:设置静态文件的路径信息。
在PyCharm的Terminal或者Windows的CMD窗口(CMD窗口路径必须在项目路径下,如项目babys的路径)中输入指令python manage.py help并按回车键。Django的操作指令共有30条,读者必须了解每个指令的具体作用。