版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
“十三五”应用技术型人才培养规划教材
PythonWeb企业级项目
开发教程
(Django版)
黑马程序员编著
文前.indd12020-7-1310:16:32
内容简介
Python是当今最流行的编程语言之一,Web开发领域自然无法缺少Python的身影。
PythonWeb发展过程中诞生了数十种框架,其中Django框架因简洁、优秀且实用的结构和良
好的开发效率,受到了广大Web开发工程师的喜爱。
本书在Windows上基于Python3.x与Django2.x对Django框架相关知识进行讲解,并以
此为基础利用Django框架实现了一个完整的电商平台。本书分为14章,其中前8章介绍了
Django的基础知识,包括Django概述、路由系统、模型、模板、视图、后台管理系统、表单、
身份验证系统;第9~14章从需求与前期准备着手,逐步实现了完整的DjangoWeb项目。
本书附有配套视频、源代码、习题、教学课件等资源。为帮助初学者更好地学习本书中
的内容,还提供了在线答疑,希望得到更多读者的关注。
本书适合作为高等院校计算机相关专业Django框架课程或Python进阶课程的专用教材,
也可作为供自学者使用的辅助教材,适合具有Python语言基础的读者参考使用。
图书在版编目(CIP)数据
PythonWeb企业级项目开发教程:Django版/黑马程序员
编著.—北京:中国铁道出版社有限公司,2020.6
“十三五”应用技术型人才培养规划教材
ISBN978-7-113-26726-1
Ⅰ.①P…Ⅱ.①黑…Ⅲ.①软件工具-程序设计-高等
学校-教材Ⅳ.①TP311.561
中国版本图书馆CIP数据核字(2020)第093952号
书名:PythonWeb企业级项目开发教程(Django版)
作者:黑马程序员
策划:翟玉峰编辑部电话:(010)83517321
责任编辑:翟玉峰 徐盼欣
封面设计:王 哲
封面制作:刘 颖
责任校对:张玉华
责任印制:樊启鹏
出版发行:中国铁道出版社有限公司(100054,北京市西城区右安门西街8号)
网址:/51eds/
印刷:中国铁道出版社印刷厂
版次:2020年6月第1版 2020年6月第1次印刷
开本:787 mm×1 092 mm 1/16 印张:21 字数:527千
书号:ISBN978-7-113-26726-1
定价:56.00元
版权所有侵权必究
凡购买铁道版图书,如有印制质量问题,请与本社教材图书营销部联系调换。电话:(010)63550836
打击盗版举报电话:(010)51873659
文前.indd22020-7-1316:42:13
序
江苏传智播客教育科技股份有限公司(简称传智播客)是一家致力于培养高素质软
件开发人才的科技公司。经过多年探索,传智播客的战略逐步完善,从IT教育培训发展
到高等教育,从根本上解决以“人”为单位的系统教育培训问题,实现新的系统教育形
态,构建出前后衔接、相互呼应的分层次教育培训模式。
一、“黑马程序员”——高端IT教育品牌
“黑马程序员”的学员多为大学毕业后,想从事IT行业,但各方面条件还不成熟的
年轻人。“黑马程序员”的学员筛选制度非常严格,包括了严格的技术测试、自学能力
测试,还包括性格测试、压力测试、品德测试等。百里挑一的残酷筛选制度确保学员质
量,并降低企业的用人风险。
自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在
产、学、研3个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力
量,有针对性地出版了计算机系列教材90多种,制作教学视频数十套,发表各类技术文
章数百篇。
“黑马程序员”不仅斥资研发IT系列教材,还为高校师生提供配套学习资源与
服务。
为大学生提供的配套服务
(1)请登录,进入“高校学习平台”,免费获取海量学习资源。
平台可以帮助高校学生解决各类学习问题。
(2)针对高校学生在学习过程中存在的压力等问题,我
们还面向大学生量身打造了IT技术女神——“播妞学姐”,可
提供教材配套源码、习题答案及更多学习资源。同学们可关注
“播妞学姐”的微信公众号boniu1024,也可扫描右方二维码
进行关注。
“播妞学姐”微信公众号
为教师提供的配套服务
针对高校教学,“黑马程序员”为IT系列教材精心设计了“教案+授课资源+考试系
统+题库+教学辅助案例”的系列教学资源。高校老师请登录,进入
文前.indd12020-6-1818:24:09
IIPythonWeb企业级项目开发教程(Django版)
“高校教辅平台”,可关注“码大牛”老师微信/QQ:
2011168841,获取配套资源;扫描右方二维码,关注专为IT
教师打造的师资服务平台——“教学好助手”微信公众号,
可获取最新的教学辅助资源。
“教学好助手”微信公众号
二、“传智专修学院”——高等教育机构
传智专修学院是一所由江苏省宿迁市教育局批准、江苏传智播客教育科技股份有限
公司投资创办的四年制应用型院校。学校致力于为互联网、智能制造等新兴行业培养高
精尖科技人才,聚焦人工智能、大数据、机器人、物联网等前沿技术,开设软件工程专
业,招收的学生入校后将接受系统化培养,毕业时学生的专业水平和技术能力可满足大
型互联网企业的用人要求。传智专修学院的教师参与相关图书编写和研讨,根据实际教
学经验,提出很多有建设性的意见。
传智专修学院借鉴卡内基梅隆大学、斯坦福大学等世界著名大学的办学模式,采
用“申请入学,自主选拔”的招生方式,通过深入调研企业需求,以校企合作、专业共
建等方式构建专业的课程体系。传智专修学院拥有顶级的教研团队、完善的班级管理体
系、匠人精神的现代学徒制和敢为人先的质保服务。
传智专修学院突出的办学特色如下:
(1)立足“高精尖”人才培养。传智专修学院以国家重大战略和国际科学技术前沿
为导向,致力于为社会培养具有创新精神和实践能力的应用型人才。
(2)项目式教学,培养学生自主学习能力。传智专修学院打破传统高校理论式教学
模式,将项目实战式教学模式融入课堂,通过分组实战,模拟企业项目开发过程,让学
生拥有真实的工作能力,并持续培养学生的自主学习能力。
(3)创新模式,就业无忧。学校为学生提供“1年工作式学
习”,学生能够进入企业边工作边学习。与此同时,我们还提供专
业老师指导学生参加企业面试,并且开设了技术服务窗口给学生解
答工作中遇到的各种问题,帮助学生顺利就业。
如果想了解传智专修学院更多的精彩内容,请关注右方“传智
“传智专修学院”
专修学院”微信公众号。
微信公众号
黑马程序员
文前.indd22020-6-1818:24:09
前 言
21世纪是信息时代,各种各样的信息充斥着人们的生活,为了更好地呈现这些信
息,很多公司搭建了自己的内容网站。Python是当今最流行的编程语言之一,Web开发领
域自然无法缺少Python的身影。PythonWeb发展过程中诞生了许多框架,其中Django框架
因简洁、优秀且实用的结构和良好的开发效率,受到了广大Web开发工程师的喜爱。
为什么要学习本书
框架的学习并不难,带领读者领悟框架的设计思想,在其指引下掌握基于框架的项
目开发,是本书的初衷。本书可帮助具有Python基础的人快速了解、熟悉Django框架,熟
练基于Django开发Web程序。
在章节设置上,本书采用“理论知识+要点分析+代码示例+实例练习”的模式,既
有普适性介绍,又抓取要点、突出重点,同时提供充足实例,保证读者在熟悉框架原理
与基础的前提下,能够掌握相关知识,并运用到实际之中;在知识配置上,本书涵盖
Django的路由系统、模型、模板、视图、后台管理系统、表单和身份验证系统,同时配
置完整Web实战项目。通过学习本书,读者可全面掌握Django框架的设计模式与相关知
识,具备使用Django框架快速开发Web项目的能力。
如何使用本书
本书在Windows上基于Python3.x与Django2.x对Django框架相关知识进行讲解。全书
分为14个章节,各章内容分别如下:
第1章简单介绍了Django框架,包括Django的发展史、优点、安装,创建Django项目
与应用、Django的目录结构、配置文件,Django架构,以及Django的开发理念。通过本章
的学习,读者能够对Django框架有所了解,掌握如何搭建虚拟环境,熟悉Django目录结
构,可熟练创建Django项目与应用。
第2章主要介绍了Django框架中的路由系统,包括处理HTTP的请求、路由转换器、
利用正则表达式配置URL、通过include()函数实现路由分发、向视图传递额外参数、URL
命名与命名空间,以及反向解析URL。通过本章的学习,读者能够熟练使用Django框架
中的路由系统。
第3章介绍了与Django模型相关的知识,包括模型的定义、字段的使用、模型的元
属性、Manager管理器、数据的增删改查,以及QuerySet的使用。通过本章的学习,读
文前.indd12020-6-1818:24:09
IIPythonWeb企业级项目开发教程(Django版)
者能够对Django中的模型有所了解,掌握如何定义模型,熟练利用模型操作数据库中的
数据。
第4章介绍了与Django模板相关的知识,包括Django内置模板引擎与第三方模板引擎
Jinja2、Django模板的查找顺序、模板语言,以及模板的继承机制。通过本章的学习,读
者能够熟悉Django模板语法,掌握如何配置模板引擎,了解模板的查找顺序,可熟练使
用模板。
第5章介绍了与Django中的视图相关的知识,包括函数视图、请求对象和响应对象、
模板响应对象、生成响应的快捷方式、类视图,以及基于类的通用视图。通过本章的学
习,读者能够熟悉Django中视图的功能、结构,掌握请求对象和响应对象,熟练定义和
使用视图。
第6章介绍了与Admin后台管理系统相关的知识,包括进入后台、使用后台管理系
统,通过ModelAdmin选项控制页面显示内容、认证和授权,以及重写Django后台模板。
通过本章的学习,读者能够掌握并熟练运行Admin。
第7章介绍了在后端定义表单、利用Django模型类定义表单,以及表单集。通过本章
的学习,读者能够了解如何通过代码定义表单类、如何在视图中实例化表单类,以及在
模板中使用表单实例。
第8章介绍了身份验证系统的相关知识,包括User对象、权限管理、Web请求认证、
模板与身份验证、自定义用户模型、状态保持。通过本章的学习,读者能够掌握Django
身份验证系统的基本使用,为后续项目开发作铺垫。
第9章通过示例网站分析了电商平台小鱼商城的需求,归纳了其核心模块,介绍了其
开发模式和运行机制,并准备了开发项目所需的环境。通过本章的学习,读者能够明确
小鱼商城项目的需求和模块,了解项目架构,能够熟练准备项目环境。
第10章主要实现了小鱼商城用户注册、用户登录与用户中心功能。通过本章的学
习,读者能够掌握用户相关模块的功能划分与内部逻辑,熟练实现相关功能。
第11章主要实现了小鱼商城的商品模块和广告模块,包括商品、广告的数据库设
计、数据的准备、首页数据的呈现、商品列表、商品搜索、商品详情,并实现了用户的
浏览记录。通过本章的学习,读者能够深入理解Django架构,熟悉Django的使用,掌握
pagination分页工具,熟练使用whoosh引擎。
第12章首先介绍了购物车的两种存储方案,然后分别介绍了购物车常用的功能,
包括添加商品、展示购物车、修改购物车商品、删除商品、全选与合并购物车功能,以
及展示购物车的缩略信息。通过本章的学习,读者能够理解购物车中常用功能的实现
逻辑。
第13章实现了小鱼商城订单的结算和提交,并介绍了与订单数据修改相关的事务处
理。通过本章的学习,读者能够熟悉电商网站订单模块的功能与逻辑,掌握Django事务
处理方式与乐观锁的使用。
第14章首先对支付宝平台进行了简单介绍,然后讲解了如何在项目中对接支付宝,
文前.indd22020-6-1818:24:09
前言III
最后介绍了商品评价的实现以及评价的展示。通过本章的学习,读者能够掌握如何对接
支付宝,了解商品评价的业务逻辑。
读者若不能完全理解本书中所讲知识,可登录在线平台,配合平台中的教学视频进
行学习。此外,读者在学习的过程中,务必要勤于练习,确保真正掌握所学知识。若在
学习的过程中遇到无法解决的困难,建议读者莫要纠结于此,继续往后学习,或可豁然
开朗。
致谢
本书的编写和整理工作由传智播客教育科技股份有限公司完成,主要参与人员有高
美云、孙东、郑瑶瑶等,全体人员在这近一年的编写过程中付出了很多辛勤的汗水,在
此一并表示衷心的感谢。
意见反馈
尽管我们付出了最大的努力,但书中难免会有疏漏和不妥之处,欢迎各界专家和读
者朋友来信提出宝贵意见,我们将不胜感激。您在阅读本书时,如发现任何问题或有不
认同之处,可以通过电子邮件与我们取得联系。
请发送电子邮件至:itcast_book@。
黑马程序员
2020年3月2日于北京
文前.indd32020-6-1818:24:09
目录
第1章Django概述1
1.1认识Django1
1.1.1Django发展史1
1.1.2Django框架的优点2
1.2安装Django2
1.2.1Django版本选择2
1.2.2创建隔离的Python环境3
1.2.3使用pip安装Django4
1.3创建第一个Django项目5
1.3.1新建Django项目5
1.3.2项目结构说明5
1.3.3运行开发服务器6
1.3.4Django项目配置7
1.3.5在项目中创建应用9
1.4Django架构之MTV11
1.5Django的开发理念11
小结13
习题13
第2章路由系统15
2.1认识路由系统15
2.1.1HTTP请求处理流程概述15
2.1.2URL配置示例16
2.2路由转换器17
2.2.1内置路由转换器17
文前.indd12020-6-2916:47:04
IIPythonWeb企业级项目开发教程(Django版)
2.2.2自定义路由转换器18第4章模板42
2.3使用正则表达式匹配URL194.1模板与模板引擎42
2.4路由分发204.2模板查找顺序43
2.5向视图传递额外参数214.3模板语言44
2.6URL命名与命名空间224.3.1变量45
2.6.1URL命名224.3.2过滤器45
2.6.2使用reverse()反向解析4.3.3标签48
URL224.3.4自定义过滤器和标签52
2.6.3应用命名空间234.4模板继承55
2.6.4实例命名空间244.5Jinja257
小结25小结58
习题25习题58
第章模型
327第5章视图61
定义与使用模型
3.1275.1认识视图61
模型的字段
3.2295.2请求对象62
字段类型
3.2.1295.3响应对象64
3.2.2关系字段30
5.3.1HttpResponse类65
3.2.3字段的通用参数32
5.3.2HttpResponse的子类66
3.3模型的元属性32
5.4实例1:商品管理67
3.4Manager管理器33
5.5模板响应对象70
3.4.1管理器名称33
5.5.1TemplateResponse70
3.4.2自定义管理器33
5.5.2模板响应对象的渲染71
3.5数据的增删改查34
5.6生成响应的快捷方式73
3.6QuerySet的使用36
5.7类视图75
3.6.1多表查询36
5.7.1定义类视图75
3.6.2F对象与Q对象38
5.7.2基础视图类75
3.6.3QuerySet的特性38
5.7.3配置类属性77
3.7执行原始SQL语句39
5.8实例2:基于类视图的商品
小结40
管理78
习题40
5.9通用视图82
文前.indd22020-6-1818:24:10
目录III
5.9.1通用视图分类827.3表单集116
5.9.2通用视图与模型827.3.1创建表单集116
5.9.3添加额外的上下文对象847.3.2管理表单集117
5.9.4通过queryset控制页面7.3.3验证表单集118
内容847.3.4使用表单集118
5.9.5重要属性和方法857.4根据模型创建表单119
小结857.4.1自定义模型表单类119
习题857.4.2模型表单类的字段120
7.4.3使用模型表单类121
第6章后台管理系统——Admin87
7.4.4利用工厂函数定义模型
6.1认识Admin87
表单类123
6.1.1进入Admin87
7.4.5利用工厂函数定义
6.1.2使用Admin89
表单集123
6.2ModelAdmin选项93
7.5实例:基于表单类的商品
6.2.1列表页选项93
管理124
6.2.2编辑页选项99
小结127
6.3认证和授权101
习题127
6.4重写Admin后台模板106
小结107第8章身份验证系统129
习题1078.1User对象129
8.2权限与权限管理131
第7章表单109
8.2.1默认权限131
7.1Django表单概述109
8.2.2权限管理132
7.1.1在Django中定义表单的
8.2.3自定义权限133
方式109
8.3Web请求认证134
7.1.2Form类的常用字段110
8.3.1用户登录与退出134
7.1.3字段的通用参数111
8.3.2限制用户访问135
7.1.4实例化、处理和渲染
8.4模板与身份验证136
表单112
8.4.1验证用户136
7.1.5表单实例的形式113
8.4.2验证权限137
7.1.6表单验证113
8.5自定义用户模型138
7.2在模板中渲染表单114
8.6状态保持138
文前.indd32020-6-1818:24:10
IVPythonWeb企业级项目开发教程(Django版)
8.6.1Cookie13910.3.1使用用户名登录190
8.6.2Session14110.3.2使用手机号登录192
小结14410.3.3状态保持193
习题14510.3.4首页展示用户名194
10.3.5退出登录195
第9章电商项目——前期准备146
10.4用户中心195
9.1项目需求146
10.4.1用户基本信息196
9.2模块归纳156
10.4.2添加邮箱198
9.3项目开发模式与运行机制157
10.4.3基于Celery的邮箱验证200
项目创建和配置
9.415810.4.4省市区三级联动207
创建项目
9.4.115810.4.5新增与展示收货地址211
配置开发环境
9.4.215810.4.6设置默认地址与修改
配置模板
9.4.3Jinja2159地址标题216
配置数据库
9.4.4MySQL16110.4.7修改与删除收货地址218
配置数据库
9.4.5Redis16210.4.8修改登录密码221
配置项目日志
9.4.6162小结223
配置前端静态文件
9.4.7164习题223
9.4.8配置应用目录164
第11章电商项目——商品数据的
小结166
呈现224
习题166
11.1商品数据库表设计224
第10章电商项目——用户管理
11.2准备商品数据227
与验证167
11.3呈现首页数据231
10.1定义用户模型类167
11.3.1呈现首页商品分类231
10.2用户注册168
11.3.2呈现首页商品广告235
用户注册逻辑分析
10.2.116811.4商品列表237
10.2.2用户注册后端基础
11.4.1商品列表页分析238
需求的实现170
11.4.2获取商品分类239
10.2.3用户名与手机号唯一性
11.4.3列表面包屑导航242
校验173
11.4.4呈现商品列表244
10.2.4验证码176
11.4.5列表页热销排行248
10.3用户登录190
11.5商品搜索250
文前.indd42020-6-1818:24:10
目录V
11.5.1准备搜索引擎250第13章电商项目——订单模块286
11.5.2渲染商品搜索结果25313.1结算订单286
搜索结果分页
11.5.325413.1.1逻辑分析与接口定义286
商品详情
11.625513.1.2后端逻辑实现287
11.6.1分析与准备商品详情页...25513.1.3前端页面渲染290
11.6.2呈现商品详情数据25613.2提交订单292
用户浏览记录
11.726013.2.1定义订单表模型292
11.7.1浏览记录存储方案26013.2.2保存订单信息294
11.7.2保存和查询浏览记录26113.2.3呈现订单提交成功页面...296
小结26413.3基于事务的订单数据保存298
习题26413.3.1Django中事务的使用298
第12章电商项目——购物车26513.3.2使用事务保存订单数据...299
13.4基于乐观锁的并发下单301
12.1购物车存储方案265
13.5查看订单303
12.1.1登录用户购物车存储
小结306
方案265
习题306
12.1.2未登录用户购物车存储
方案267第14章电商项目——支付与评价...307
12.2购物车管理26914.1支付宝开放平台介绍307
12.2.1购物车添加商品26914.2对接支付宝系统310
12.2.2展示购物车商品27214.2.1支付信息配置310
12.2.3修改购物车商品27414.2.2订单支付功能312
12.2.4删除购物车商品27714.2.3保存订单支付结果315
12.2.5全选购物车27914.3商品评价316
12.2.6合并购物车28114.3.1评价订单商品317
12.3展示购物车缩略信息28214.3.2在详情页展示商品评价319
小结285小结322
习题285习题322
文前.indd52020-6-1818:24:11
第1章Django概述
学习目标:
◎认识Django,了解Django与Python版本对应关系。
◎可熟练搭建与使用虚拟环境。
◎熟悉Django项目的结构。
◎了解Django项目与应用的区别。
◎掌握在项目中创建与激活应用的方法。
◎熟悉Django架构,掌握MTV各部分的功能。
◎了解Django的开发理念。
Django是使用Python语言编写的一个开源Web应用框架,它遵循MTV架构、鼓励快速开
发,是当前较为流行的一种Web开发框架。本章将从Django的发展历史讲起,逐步引领大家认识
Django,学会搭建Django开发环境以及创建Django项目,了解Django的开发理念,进而熟悉Django
框架。
1.1 认识Django
1.1.1 Django发展史
2003年秋,Django诞生于美国堪萨斯州TheWorldCompany公司的WorldOnline部门,这个部
门是公司的Web开发部门,维护着公司的三个新闻站点。由于新闻界特有的快节奏,管理层不断要
求开发小组在几天甚至几小时内增加新的程序或特征,为此,Web开发部门的AdrianHolovaty(阿
德里安·霍洛瓦蒂)和SimonWillison(西蒙·威利森)着手开发一个能节省时间、实现Web程序
高效开发的框架。此后两年时间,Adrian和Simon在研发Django框架的同时,也将其应用到了World
Online部门多个站点的开发工作之中。
2005年夏天,Django框架开发完成,此时JacobKaplan-Moss(雅各布·卡普兰·莫斯)加入
WorldOnline,致力于推荐Django框架的开源工作。2005年7月,Django框架在BSD开源协议下发
布;2008年6月,Django软件基金会成立;同年9月,第一个Django正式版本Django1.0发布。
01-09.indd12020-6-1818:24:23
2PythonWeb企业级项目开发教程(Django版)
此后,Django逐步成为一个有着大量用户与贡献者、在世界范围都得到广泛应用的开源
框架。
1.1.2 Django框架的优点
快速开发内容类网站——新闻网络站点这一需求促使了Django的诞生,Django自然非常适合
开发内容类网站,但这不意味着它仅适用于开发内容类网站。Django能在开源发行之后吸引众多
追随者,离不开它所具备的以下优点:
①齐全的功能。自带大量常用工具和框架,可轻松、迅速开发出一个功能齐全的Web应用。
②完善的文档。Django已发展十余年,具有广泛的实践案例,同时Django提供完善的在线文
档,Django用户能够更容易地找到问题的解决方案。
③强大的数据库访问组件。Django自带一个面向对象的、反映数据模型(以Python类的形
式定义)与关系型数据库间的映射关系的映射器(ORM),开发者无须学习SQL语言即可操作数
据库。
④灵活的URL映射。Django提供一个基于正则表达式的URL分发器,开发者可灵活地编写
URL。
⑤丰富的模板语言。Django模板语言功能丰富,支持自定义模板标签。Django也支持使用第
三方模板系统,如jinja2等。
⑥健全的后台管理系统。Django内置了一个后台数据管理系统,经简单配置后,再编写少量
代码即可使用完整的后台管理功能。
⑦完整的错误信息提示。Django提供了非常完整的错误信息提示和定位功能,可在开发调试
过程中快速定位错误或异常。
⑧强大的缓存支持。Django内置了一个缓存框架,并提供了多种可选的缓存方式。
⑨国际化。Django包含一个国际化系统,Django组件支持多种语言。
世界知名网站如Instagram、国家地理、Pinterest都使用Django开发。对于使用Python建设网
站的初学者来说,一旦熟悉了Django的运行逻辑,就可以在非常短的时间内构建一个出色的专业
网站。
1.2 安装Django
1.2.1 Django版本选择
Django于2008年9月发布1.0版本,此后Django分别以功能版(AB、A.B+1等)和补丁版
(ABC等)发布,其中功能版包含新功能和对已有功能的改进,大约8个月发布一次;补丁版根据
需要发布,以修复错误或安全问题。一些功能版本会被指定为长期支持(LTS)版本,官方将在较
长的时间内(通常为3年)提供对该版本的支持。
目前Django官方对各个版本的支持情况以及未来发布计划如图1-1所示。
由图1-1可知,官方已终止对1.x、2.0和2.1版本的支持,目前官方仍提供长期支持的版本为
Django2.2。
01-09.indd22020-6-1818:24:24
第1章Django概述3
图1-1Django版本支持及未来发布计划
本书基于Python语言讲解Django。Django对Python版本的依赖关系具体如表1-1所示(截至
2019年8月)。
表1-1Django对Python版本的依赖关系
Django版本Python版本
1.112.7,3.4,3.5,3.6,3.7(1.11.17添加)
2.03.4,3.5,3.6,3.7
2.1,2.23.5,3.6,3.7
表1-1中Python的最新版本分为Python2.7和Python3.7,Django1.11是支持Python2.7的最后一
版,Django1.11的支持于2020年结束;Django官方推荐使用Python3进行开发,以获得更快的效
率、更多的特性和拥有更好的支持。
综合以上因素,本书将选用Python3.7+Django2.2搭建开发环境。
1.2.2 创建隔离的Python环境
实际生产中同一项目的不同版本可能依赖不同的环境,这时需要在系统中安装多个版本的
Python。若直接在物理环境中进行配置,多个版本的软件之间会产生干扰。为了避免这种情况,
应使用virtualenv命令创建虚拟环境,以隔离不同版本的Python。
一台主机中可以存在多个虚拟环境,开发人员可以将不同版本的Python安装在不同的虚拟环
境中,实现Python环境的隔离。下面以Windows系统为例,介绍如何创建和使用虚拟环境。
打开控制台窗口,使用pip工具可以在线安装virtualenv,具体命令如下:
C:\Users\admin>pipinstallvirtualenv
virtualenv安装完成后,使用命令创建虚拟环境,具体命令如下:
C:\Users\admin>virtualenvfirst_env
以上命令执行后会创建包含Python的虚拟环境first_env,虚拟环境中的Python版本由系统环境
变量PATH中配置的Python安装路径中Python的版本决定。若要创建包含指定Python版本的虚拟环
境,需使用-p选项指定该版本Python可执行文件所在的路径,完整命令格式如下:
路径虚拟环境名
virtualenv–ppython.exe
执行虚拟环境目录中Scripts下的activate文件可启用虚拟环境,以first_env为例,具体命令
如下:
01-09.indd32020-6-1818:24:25
4PythonWeb企业级项目开发教程(Django版)
C:\Users\admin>.\first_env\Scripts\activate
若以上命令执行成功,则命令行的路径名之前会出现“(虚拟环境名)”,具体如下:
(first_env)C:\Users\admin>
使用deactivate命令可禁用虚拟环境。
多学一招:虚拟环境管理工具virtualenvwrapper
用户可通过虚拟环境管理工具virtualenvwrapper简化虚拟环境的创建和管理。在Windows系统
中安装该工具,具体命令如下:
pipinstallvirtualenvwrapper-win
安装完成后,用户可分别使用以下命令创建和管理虚拟环境:
创建虚拟环境:
mkvirtualenvenv
启用虚拟环境:
workonenv
退出虚拟环境:
deactivate
删除虚拟环境:
rmvirtualenvenv
查看虚拟环境列表:
lsvirtualenv/workon
进入当前虚拟环境所在目录:
cdvirtualenv
管理工具创建的虚拟环境统一存储在C:\Users\admin\Envs目录中;mkvirtualenv命令创建虚拟
环境后将直接启用虚拟环境。
需要注意,virtualenvwrapper只能管理使用它所创建的虚拟环境。
1.2.3 使用pip安装Django
Django其实也是Python内置的包,可以通过pip工具管理。本书使用的Django版本为2.2.3,在
虚拟环境first_env中使用pip工具安装Django,具体命令如下:
(first_env)C:\Users\admin>pipinstalldjango==2.2.3
若命令执行后命令行输出以下信息,则说明Django安装成功。
SuccessfullyinstalledDjango-2.2.3pytz-2019.2sqlparse-0.3.0
此时可以使用piplist命令查看虚拟环境中安装的包,具体如下:
PackageVersion
Django2.2.3
pip19.2.1
pytz2019.2
setuptools41.0.1
sqlparse0.3.0
wheel0.33.4
01-09.indd4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司保安员奖惩制度
- 工地环保奖惩制度
- 健全公务员奖惩制度
- 上海医院奖惩制度
- p2p公司奖惩制度
- 售后服务部奖惩制度
- 新闻用稿奖惩制度
- 总公司奖惩制度
- 沧千高速奖惩制度
- 泰鲁集团奖惩制度
- 2026河南三门峡市辖区法院省核定聘用制书记员招聘74人考试参考题库及答案解析
- 2026 年三八妇女节 普法宣传方案 课件
- 【新教材】人教PEP版(2024)四年级下册英语 Unit 1 Class rules A Lets talk 教案
- 第一单元 考虑目的和对象(课件)语文新教材统编版八年级下册
- 2026年春季小学科学人教鄂教版(2024)二年级下册教学计划含进度表
- 2026年乌兰察布职业学院单招综合素质考试题库及答案详解(各地真题)
- 2025年江西工业贸易职业技术学院单招职业技能考试题库带答案解析
- 2025年内蒙古机电职业技术学院单招职业适应性测试题库带答案解析
- 高频海事局面试题及答案
- 2025年四川省高考化学真题卷含答案解析
- 公路水运工程施工企业(主要负责人和安全生产管理人员)考核大纲及模拟题库
评论
0/150
提交评论