基于Django的电子商务网站开发(连载3)

简介: 本文首先介绍了Python的安装选择,建议基于2.X系列进行维护工作,而新项目则选用3.X系列,并提供了官方下载地址及环境配置说明。随后,文章详细阐述了Django框架的特点和设计理念,包括其核心组件、快速开发原则及DRY原则,并简述了Django的工作流程和技术优势。

1.1.2 Python的安装

目前市场上Python 2.X系列与Python 3.X系列共存的现象。读者可以安装Python 2.X系列或者Python 3.X系列。如果开发的目的是基于原有Python 2.X系列产品的维护,作者建议选择Python 2.X系列;如果是开发一个完全新的产品,那么作者建议选择Python 3.X系列。作者写这本书的时候,Python的最高版本是3.6,但是作者担心Python 3.6还是不成熟,所以本书选择版本的是Python 3.5。

Python工具的官方下载地址是http://www.python.org/download。

Python下载完毕以后务必注意要配置好环境变量。(本书全部基于Windows开发环境进行介绍。)

图1-1是配置PYTHON_HOME变量,变量值为安装Python的文件路径,在Python3.5中默认为C:\Users\<Your_ID>\AppData\Local\Programs\Python\Python35。

图1-2是在path中增加的两个参数,设置%PYTHON_HOME%是为了可以在任意路径下运行python命令;设置%PYTHON_HOME%\Scripts\是为了可以在任意路径下运行%PYTHON_HOME%\scripts\路径下的命令,比如pip或pip3。

图1-1 PYTHON_HOME的配置

图1-2 PATH中的配置

1.2 Django 框架

1.2.1 Django的介绍

1. Django概况

Django项目是一个Python语言定制框架,它源自一个在线新闻 Web站点,于2005年以开源的形式被释放出来。Django 框架的核心组件如下。

(1)用于创建模型的对象关系映射。

(2)为最终用户设计完美的管理界面。

(3)一流的 URL 设计。

(4)设计者友好的模板语言。

(5)缓存系统。

Django是用Python语言开发的一个开源的Web开发框架(OpenSource Web Framework,OSWF),它鼓励快速开发,并遵循MVC设计理念。Django遵守BSD版权[1],初次发布于2005年7月,并于2008年9月发布了第一个正式版本1.0。

Django根据比利时的爵士音乐家DjangoReinhardt命名,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。

由于Django在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SD Times[2]评选为2013 SDTimes 100,位列“API、库和框架”分类第六位,被认为是该领域的佼佼者。

2. Django的设计理念

Django的主要目的是简便、快速地开发数据库驱动的网站。它强调代码的复用以及多个组件可以很方便地以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,甚至可以很方便地开发出自己的工具包。这使得Django具有很强的可扩展性。Django还强调快速开发和DRY(Do Not Repeat Yourself)的原则。

Django基于MVC的设计十分优美。

(1)对象关系映射(Object-RelationalMapping,ORM):以Python类形式定义数据模型,ORM将模型与关系数据库连接起来,将得到一个非常容易使用的数据库API。虽然在Django中可以使用原始的SQL语句。一般从安全角度来说,是不建议的,因为一是Django已经对SQL语句进行了很好地封装,二是显示SQL语句容易引发类似SQL注入的威胁。本书将在第2.7节中进行详细地介绍。

(2)URL分配:使用正则表达式匹配URL,就可以设计任意的URL。本书将在第2.8.1节中进行详细地介绍。

(3)模板系统:Django提供强大而可扩展的模板语言,它可以分隔设计、内容和Python代码,并且具有可继承性。本书将在第2.9节中进行详细地介绍。

(4)表单处理:可以方便地生成各种表单模型,实现表单的有效性检验。可以方便地从定义的模型实例生成相应的表单。本书将在第3.3节开始进行详细地介绍。

(5)Cache系统:可以挂在内存缓冲或其他的框架实现超级缓冲——实现所需要的粒度。

(6)会话(session):用户登录与权限检查,快速开发用户会话功能。本书将在第2.4节中进行详细地介绍。

(7)国际化:内置国际化系统,方便开发出多种语言的网站。

(8)自动化的管理界面:不需要使用大量的工作来创建人员管理和更新内容。Django自带一个Admin Site,类似于内容管理系统。

3. 工作原理

(1)用manage.py runserver启动Django服务器。

(2)同时载入同一目录下的settings.py。该文件包含了项目中的配置信息,如URLConf等,其中最重要的配置就是ROOT_URLCONF,它告诉Django哪个Python模块应该用作本站的URLConf。见图1-3所示。

图1-3 settings.py中的ROOT_URLCONF

(3)当访问URL的时候,Djang会根据ROOT_URLCONF的设置来装载URLConf。

(4)然后按顺序逐个匹配URLConf里的URLpatterns。如果找到则会调用相关联的视图方法,并把HttpRequest对象作为第一个参数(通常是request)。

(5)最后该view方法负责返回一个HttpResponse对象。

请参见图1-4。

图1-4 Django的工作原理

[1] BSD (Berkeley Software Distribution,伯克利软件套件)是UNIX的衍生系统,在1977至1995年间由加州大学伯克利分校开发和发布的。——百度百科

[2] SD Time即《软件开发时代》杂志

目录
相关文章
|
5天前
|
数据安全/隐私保护 Python
基于Django的电子商务网站开发(连载9)
根据3.1节的需求分析,设计了电子商务系统的数据模型,包括用户、地址、商品、单个订单和总订单五个对象。各对象间为一对多关系,并在相关表中设置外键,确保数据的一致性和完整性。通过具体模型定义和字段描述,实现了系统的功能需求。
20 5
基于Django的电子商务网站开发(连载9)
|
5天前
|
存储 安全 数据安全/隐私保护
基于Django的电子商务网站开发(连载7)
HTTP是一种无状态协议,每个请求独立,不保存会话信息,这使得服务器响应更快但需重复传输信息。为解决无状态问题,引入了Cookie和Session技术。Cookie可存储用户登录信息和购物车数据,实现便捷登录和跨页面数据保存;Session则通过服务器保存会话信息,客户端仅存储SessionId,实现更安全的状态管理。这两种方法共同解决了Web应用程序中状态保持的问题。
22 2
基于Django的电子商务网站开发(连载7)
|
5天前
|
存储 开发框架 网络安全
基于Django的电子商务网站开发(连载5)
HTTP请求包括八种方法:OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT,常用的是GET和POST。请求结构分为请求行、请求头和请求正文。HTTP响应则包含状态码,如200表示成功,404表示未找到,500表示服务器内部错误。响应同样分为响应行、响应头和响应正文。状态码按类别分为1XX(指示信息)、2XX(成功)、3XX(重定向)、4XX(客户端错误)和5XX(服务器错误)。
19 2
基于Django的电子商务网站开发(连载5)
|
5天前
|
数据库 数据安全/隐私保护 Python
基于Django的电子商务网站开发(连载8)
本章节详细介绍了电子商务网站的实现,包括用户信息模块(注册、登录、信息展示及密码修改),商品信息模块(维护、分页显示、模糊查询及详情展示),购物车模块(商品显示、添加、删除及数量修改),送货地址模块(显示、添加、修改及删除),订单模块(显示、删除),以及订单支付模块等功能需求和实现细节。
16 4
|
5天前
|
开发框架 人工智能 Java
基于Django的电子商务网站开发(连载2)
本章节介绍了基于Python的Web开发框架Django的学习前提,即Python基础和HTTP协议的基本知识。首先概述了Python语言的特点和支持领域,强调了其简洁性和易读性。接着讲述了Python的历史及其创始人Guido van Rossum的故事,说明Python如何从ABC语言发展而来,并成为受欢迎的编程语言之一。此外,还提到了Python在科学计算和教育领域的广泛应用。
14 3
|
XML 测试技术 数据库
基于Django的电子商务网站开发(连载30)
基于Django的电子商务网站开发(连载30)
106 0
基于Django的电子商务网站开发(连载30)
|
XML 测试技术 数据库
基于Django的电子商务网站开发(连载34)
基于Django的电子商务网站开发(连载34)
56 0
基于Django的电子商务网站开发(连载34)
|
测试技术 Python
基于Django的电子商务网站开发(连载12)
基于Django的电子商务网站开发(连载12)
60 0
基于Django的电子商务网站开发(连载12)
|
测试技术 数据安全/隐私保护 Python
基于Django的电子商务网站开发(连载18)
基于Django的电子商务网站开发(连载18)
69 0
基于Django的电子商务网站开发(连载18)
|
安全 测试技术 Python
基于Django的电子商务网站开发(连载39)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
66 0
基于Django的电子商务网站开发(连载39)