基于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即《软件开发时代》杂志

目录
打赏
0
6
6
0
310
分享
相关文章
在Python中进行UDP(User Datagram Protocol)网络编程
在Python中进行UDP(User Datagram Protocol)网络编程
218 3
基于Django的电子商务网站开发(连载9)
根据3.1节的需求分析,设计了电子商务系统的数据模型,包括用户、地址、商品、单个订单和总订单五个对象。各对象间为一对多关系,并在相关表中设置外键,确保数据的一致性和完整性。通过具体模型定义和字段描述,实现了系统的功能需求。
81 5
基于Django的电子商务网站开发(连载9)
基于Django的电子商务网站开发(连载10)
本节介绍了用户信息模块,涵盖用户注册、登录、信息展示及密码修改功能。重点描述了用户注册流程,包括urls.py配置、forms.py中的表单定义及views.py中的处理逻辑。通过详细代码示例展示了如何实现用户信息验证与存储,并提供了注册页面的模板设计。特别强调了使用`request.POST.get`方法以支持后续接口测试。图3-2展示了实际的注册页面效果。
87 2
基于Django的电子商务网站开发(连载10)
《探寻开源AI项目的资金密码:可持续运营之路》
在人工智能浪潮中,开源项目汇聚全球智慧,推动AI创新。然而,资金困境限制了其发展。企业赞助、社区捐赠、政府资助、付费服务等模式可为开源项目提供稳定资金来源。通过成本控制、合作伙伴关系及品牌建设,开源项目能实现可持续运营,突破发展瓶颈,为AI领域注入源源不断的活力。
138 12
如何在 Vue 项目中配置 Tree Shaking?
通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。
企业数仓架构设计实践
本文是一位数据架构师在设计企业级数据仓库架构时的思考与实践经验分享。从理论基础(数据仓库概念、Lambda架构、Kimball与Inmon方法)到工具选型(如Hadoop、Hive、Spark、Airflow、Tableau等),再到实践过程(需求调研、架构设计、技术选型落地、数据模型设计、测试迭代及用户培训),全面阐述了数仓建设的各个环节。强调了业务理解与技术结合的重要性,并指出数仓建设是一个持续优化、适应业务发展变化的过程。
562 3
打造现代化后端服务:从零到一实现RESTful API
【10月更文挑战第20天】在数字化时代的浪潮中,构建一个高效、可靠的后端服务是每个软件工程师的必备技能。本文将引导你理解RESTful API的设计哲学,并通过实际的代码示例,展示如何从无到有地实现一个现代化的后端服务。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和启发。
自动化测试的高效之路:如何利用Python和Selenium提升测试效率
【8月更文挑战第28天】本文旨在探讨通过Python语言结合Selenium框架来提高软件测试的效率。文章不仅介绍了自动化测试的基本概念,还提供了具体的代码示例,帮助读者理解如何实现自动化测试脚本,并指出了在实施过程中可能遇到的问题及其解决方案。通过本文,读者将学会如何有效地使用Python和Selenium工具,以减少重复性工作,提升测试流程的效率与准确性。
Mysql和Oracle数据库死锁查看以及解决
【8月更文挑战第11天】本文介绍了解决MySQL与Oracle数据库死锁的方法。MySQL可通过`SHOW ENGINE INNODB STATUS`查看死锁详情,并自动回滚一个事务解除死锁;也可手动KILL事务。Oracle则通过查询V$LOCK与V$SESSION视图定位死锁,并用`ALTER SYSTEM KILL SESSION`命令终止相关会话。预防措施包括遵循ACID原则、优化索引及拆分大型事务。
747 3
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问