产品特色
编辑推荐
本书免费赠送范例网站的源码和网站文件夹结构及其文件,下载地址:http://pan.baidu.com/s/1pLIuFXp(注意区分数字和英文字母大小写)
1.详细的步骤教学,按图操作,快速上手
2.深入分析Django的MVC/MTV架构
3.多个实用的网站开发范例,即学即用到个人网站
4.从设计、规划到实践,16堂课使你轻松成为网络架站高手
内容简介
Python是目前非常受欢迎的程序设计语言,本书通过对Python语言使用*多的Django Web Framework的介绍,让读者可以轻松制作出全功能的动态网站。
本书分4部分,以16堂课来介绍Python新手使用Django架站的要点。*部分(第1~3堂)以一个小型的个人博客网站为主轴,介绍如何快速建立一个实用的Django网站;第二部分(第4~7堂)是Django架构深入剖析,详细分析Django的MVC/MTV架构;第三部分(第8~11堂)为实用网站开发技巧;第四部分(第12~16堂)为实用网站开发教学,从设计、规划到实践,逐步指导读者在自己的主机环境下构建出有趣实用的内容。
本书既可作为希望快速上手Python+Django的初学者的参考书籍,也可作为Python培训学校在Python+Django方面的培训教程。
作者简介
何敏煌,中国台湾交通大学信息科学所博士。台湾畅销书作者.
目录
第1堂 网站开发环境的建立 1
1.1 网站的基础知识 1
1.1.1 网站的运行流程 1
1.1.2 Python/Django扮演的角色 2
1.1.3 使用Python/Django建立网站的优势 3
1.2 建立网站开发流程 3
1.2.1 开发流程简介 4
1.2.2 在Windows中建立Linux虚拟机 5
1.2.3 在Mac OS中安装Linux虚拟机 11
1.2.4 在Linux虚拟机中创建Python Django开发环境 17
1.2.5 设置SSH、PuTTY以及FTP服务器 18
1.2.6 安装Notepad++程序编辑器 22
1.3 活用版本控制系统 26
1.3.1 版本控制系统Git简介 26
1.3.2 申请Bitbucket账号 26
1.3.3 在虚拟机中连接Bitbucket 29
1.3.4 在不同的计算机之间开发同一个网站 31
1.4 其他网站项目开发环境的安装建议 32
1.4.1 在Windows 10中创建开发环境 32
1.4.2 在Mac OS中创建开发环境 35
1.4.3 在Cloud9中创建开发环境 37
1.4.4 在DigitalOcean VPS中创建开发环境 39
1.5 习题 40
第2堂 Django网站快速入门 41
2.1 个人博客网站规划 41
2.1.1 博客网站的需求与规划 41
2.1.2 产生*个网站框架 41
2.1.3 Django文件夹与文件解析 44
2.2 创建博客数据表 46
2.2.1 数据库与Django的关系 46
2.2.2 定义数据模型 47
2.2.3 启动admin管理界面 48
2.2.4 读取数据库中的内容 52
2.3 网址对应与页面输出 55
2.3.1 创建网页输出模板template 55
2.3.2 网址对应urls.py 60
2.3.3 共享模板的使用 62
2.4 高级网站功能的运用 65
2.4.1 JavaScript以及CSS文件的引用 65
2.4.2 图像文件的应用 69
2.4.3 在主网页显示文章摘要 71
2.4.4 博客文章的HTML内容处理 73
2.4.5 Markdown语句解析与应用 75
2.5 习题 77
第3堂 让网站上线 78
3.1 在DigitalOcean上部署 78
3.1.1 申请账号与创建虚拟主机 78
3.1.2 安装Apache网页服务器及Django执行环境 82
3.1.3 修改settings.py、000-default.conf等相关设置 83
3.1.4 创建域名以及多平台设置 86
3.2 在Heroku上部署 89
3.2.1 Heroku账号申请与环境设置 89
3.2.2 修改网站的相关设置 91
3.2.3 上传网站到Heroku主机 92
3.2.4 Heroku主机的操作 96
3.3 在Google Cloud Platform上部署 97
3.3.1 Google Cloud Platform的介绍 98
3.3.2 Google Computing的启用与设置 101
3.3.3 Google App Engine的说明与设置 104
3.4 习题 111
第4堂 深入了解Django的MVC架构 112
4.1 Django的MVC架构简介 112
4.1.1 MVC架构简介 112
4.1.2 Django的MTV架构 113
4.1.3 Django网站的构成以及配合 114
4.1.4 在Django MTV架构下的网站开发步骤 115
4.2 Model简介 116
4.2.1 在models.py中创建数据表 116
4.2.2 在admin.py中创建数据表管理界面 119
4.2.3 在Python Shell中操作数据表 123
4.2.4 数据的查询与编辑 125
4.3 View简介 127
4.3.1 建立简易的HttpResponse网页 127
4.3.2 在views.py中显示查询数据列表 129
4.3.3 网址栏参数处理的方式 131
4.4 Template简介 133
4.4.1 创建template文件夹与文件 133
4.4.2 传送变量到template文件中 134
4.4.3 在template中处理列表变量 137
4.5 *终版本摘要 138
4.6 习题 142
第5堂 网址的对应与委派 143
5.1 Django网址架构 143
5.1.1 URLconf简介 143
5.1.2 urlpatterns的Regular Expression语法说明 145
5.1.3 验证RE设计URL的正确性 148
5.2 高级设置技巧 149
5.2.1 参数的传送 149
5.2.2 include其他整组的urlpatterns设置 150
5.2.3 URLconf的反解功能 151
5.3 习题 152
第6堂 Template深入探讨 153
6.1 Template的设置与运行 153
6.1.1 settings.py设置 153
6.1.2 创建templates文件 155
6.1.3 在templates文件中使用现有的网页框架 156
6.1.4 直播电视网站应用范例 157
6.1.5 在template中使用static文件 161
6.2 高级Template技巧 163
6.2.1 Template模板的继承 163
6.2.2 共享模板的使用范例 165
6.3 Template语言 166
6.3.1 判断指令 167
6.3.2 循环指令 168
6.3.3 过滤器与其他语法标记 173
6.4 习题 176
第7堂 Models与数据库 177
7.1 网站与数据库 177
7.1.1 数据库简介 177
7.1.2 规划网站需要的数据库 178
7.1.3 数据表内容设计 181
7.1.4 models.py设计 182
7.2 活用Model制作网站 183
7.2.1 建立网站 183
7.2.2 制作网站模板 186
7.2.3 制作多数据表整合查询网页 188
7.2.4 调整admin管理网页的外观 192
7.3 在Django中使用MySQL数据库系统 194
7.3.1 安装开发环境中的MySQL连接环境(Ubuntu) 194
7.3.2 安装开发环境中的MySQL连接环境(Windows) 195
7.3.3 使用Google云端主机的商用SQL服务器 199
7.4 习题 203
第8堂 网站窗体的应用 204
前言/序言
本书的主要目的在于介绍如何使用Django这个Web Framework在网络主机上架设一个全功能的网站。Django是一个由Python编写的具有完整架站能力的Web网站框架,通过这个框架,只要短短几个指令,Python的程序设计人员就可以轻松地建立一个正式网站所需要的骨架(框架),再从这个框架中开发出全功能的网站。
Python语言充满了令人津津乐道的加速技巧,为了方便读者学习,本书尽量使用初学者容易理解的讲述方式,以期阅读本书的读者能够在*短的时间内跨过使用程序设计语言制作网站的门槛,马上以Python建立自己的特色网站,并在熟悉流程以及架构后,进一步提升网站的性能。
所以,只要您有Python的基本程序设计能力以及网站架构和运行的基本概念,基本上就有足够的能力通过本书来建立属于自己的动态网站——一个可以让您充分利用Python语言所有能力、连接数据库、使用社交网站账号验证机制、实时运算处理数据、充分实现所有“点子”的网站。
本书所有网站范例均在Python 2.7.6以及Django 1.8.13中测试无误,为了避免学习上的困扰,建议读者在学习时尽量以同样的版本练习(相同的主版本号即可),等熟练之后再视需求升级版本。此外,一开始建立基本范例时也以自行输入程序代码为主,等到有了一定的基础,再把自己的程序代码拿来重复使用,“在实践中学习”永远是程序设计学习的*佳方法。
揭秘你的第一个网站:从零到一的Django建站之旅 你是否曾梦想过将脑海中的创意转化为在线的实体?是否渴望拥有一个属于自己的网站,展示作品、分享知识,甚至建立一个社区?互联网的门槛,其实比你想象的要低。特别是当你手中掌握了强大的工具——Django——时,这一切将变得触手可及。 这本教程,正是为你精心打造的通往Django建站世界的“第一课”。它并非高深的理论堆砌,而是循序渐进的实战指导,让你在不动声色间,掌握从零开始搭建一个功能完善的网站所需的一切核心技能。我们将一起探索Django这个风靡全球的Python Web框架的奥秘,解锁其高效、安全、可扩展的强大能力,让你信心满满地迈出成为Web开发者坚实的第一步。 为什么选择Django? 在浩瀚的Web开发技术海洋中,Django之所以脱颖而出,成为无数开发者青睐的利器,并非偶然。它遵循“快速开发”和“干活不重复”(Don't Repeat Yourself, DRY)的设计哲学,提供了一整套成熟的解决方案,让你能够专注于业务逻辑的实现,而非底层细节的繁琐。 “开箱即用”的强大功能: Django内置了用户认证系统、管理后台、ORM(对象关系映射)等几乎所有构建现代Web应用所需的核心组件。这意味着你不需要从零开始编写大量的通用代码,可以直接利用Django提供的现成功能,极大地提升了开发效率。 安全性: Django非常重视安全性,内置了对SQL注入、跨站脚本(XSS)攻击、跨站请求伪造(CSRF)等常见Web安全威胁的防御机制,让你能够构建更健壮、更安全的网站。 可扩展性: 无论你的项目规模如何,Django都能够提供良好的支持。它良好的设计使得你可以轻松地添加新的功能、集成第三方库,并随着用户量的增长而扩展应用。 活跃的社区和丰富的资源: Django拥有一个庞大而活跃的全球社区,这意味着当你遇到问题时,总能找到丰富的文档、教程和热心的开发者帮助你解决。 本书将带你走进一个怎样的建站旅程? 本书将以一个循序渐进、实战驱动的方式,带你领略Django的魅力。我们将从最基础的概念讲起,一步步构建起一个完整的Web应用。每一章节都围绕一个核心主题展开,并通过大量的代码示例和实践练习,让你在动手操作中学习和巩固知识。 第一步:奠定坚实基础——Python与Web开发入门 在正式踏入Django之前,我们将先回顾和巩固一些Python基础知识,并简要介绍Web开发的基本概念,例如HTTP协议、客户端-服务器模型等。这部分内容旨在确保即使你是完全的编程新手,也能轻松理解后续Django的核心概念。我们会用通俗易懂的语言解释这些概念,让你快速进入状态。 第二步:初识Django——安装与项目结构 安装Django是第一步,我们将详细指导你如何在你的操作系统上完成Django的安装。接着,我们将学习如何创建一个新的Django项目,并深入了解Django项目的基本目录结构和各个文件的作用。理解项目结构,就像了解一个新家的布局,能让你在后续的开发中事半功倍。 第三步:MVC/MTV模式的秘密——Django的核心架构 Django采用的是MTV(Model-Template-View)设计模式,这实际上是MVC(Model-View-Controller)模式的一种变体。我们将详细解释MTV模式的各个组成部分及其如何协同工作。 模型(Model): 负责处理数据库交互。我们将学习如何定义数据模型,将现实世界的数据映射到数据库的表格中,以及如何使用Django的ORM进行数据的增删改查。 模板(Template): 负责展示数据。我们将学习如何创建HTML模板,如何将数据从视图传递到模板进行渲染,以及如何使用Django的模板语言实现动态内容。 视图(View): 负责处理请求和响应。我们将学习如何编写视图函数,接收用户的HTTP请求,处理业务逻辑,并返回相应的HTTP响应。 第四步:玩转数据库——模型、迁移与ORM 数据库是任何Web应用的心脏。本书将深入讲解Django的ORM(Object-Relational Mapper),这是一个强大的工具,允许你用Python代码来操作数据库,而无需直接编写SQL语句。 定义模型: 我们将学习如何使用Django的模型API定义你的数据结构,包括字段类型、约束、关系等。 数据库迁移: 当你修改模型时,Django的迁移系统可以帮助你自动生成和应用数据库的变更。我们将学习如何创建和应用迁移,确保你的数据库结构与模型保持同步。 CRUD操作: 掌握对数据库进行创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作是Web开发的基础。我们将通过丰富的示例,演示如何使用Django ORM高效地完成这些操作。 第五步:构建用户界面——视图、URL与模板 用户与你的网站进行交互,是通过URL、视图和模板的组合来实现的。 URL配置: 我们将学习如何定义URL路由,将用户访问的URL映射到相应的视图函数。 视图函数: 视图函数是处理用户请求的核心。我们将学习如何编写视图函数来处理GET和POST请求,从数据库获取数据,并将数据传递给模板。 HTML模板: 模板是用户看到的内容。我们将学习如何使用HTML、CSS以及Django的模板标签和过滤器来创建动态的、美观的网页。 第六步:处理用户输入——表单处理 用户需要通过表单来提交信息,例如注册、登录、发表评论等。Django提供了强大的表单处理功能。 Django表单类: 我们将学习如何定义Django表单类,它不仅可以验证用户输入的数据,还可以生成HTML表单元素。 表单验证: 确保用户提交的数据是有效和安全的至关重要。我们将学习如何利用Django表单的内置验证器,以及如何自定义验证规则。 处理表单提交: 我们将学习如何在视图中接收和处理用户提交的表单数据,并将其保存到数据库或进行其他逻辑处理。 第七步:用户认证与权限管理 一个完整的网站通常需要用户系统,允许用户注册、登录、管理自己的账户,并根据用户的身份分配不同的访问权限。Django内置了完善的用户认证系统。 注册与登录: 我们将学习如何实现用户注册和登录功能,并安全地处理用户密码。 用户注销: 实现用户登出功能。 权限控制: 我们将学习如何限制某些页面或功能的访问,只允许特定用户或用户组访问。 第八步:Django管理后台——开发者的得力助手 Django的自带管理后台是其最受欢迎的功能之一。它能够自动生成一个功能强大的后台管理界面,让你可以方便地管理你的网站数据。 注册模型到后台: 我们将学习如何将你的模型注册到Django管理后台,使其可以被管理。 使用管理后台: 探索管理后台的各种功能,包括数据列表、详细信息、添加、编辑和删除等。 定制管理后台: 我们还将了解如何自定义管理后台的显示,使其更加符合你的需求。 第九步:静态文件与媒体文件处理 网站不仅仅是动态内容,还需要图片、CSS、JavaScript等静态文件,以及用户上传的媒体文件。 静态文件: 我们将学习如何配置Django来处理CSS、JavaScript和图片等静态文件,并了解在开发和生产环境中处理静态文件的最佳实践。 媒体文件: 我们将学习如何配置Django来处理用户上传的文件,例如用户头像、文档等。 第十步:部署你的网站——让世界看到你的作品 学习了如何构建一个功能完善的网站,下一步就是如何将它部署到互联网上,让所有人都能访问。 Web服务器与WSGI: 我们将简要介绍Web服务器(如Nginx、Apache)和WSGI(Web Server Gateway Interface)在Django部署中的作用。 简单的部署实践: 我们将介绍一些部署Django网站的常用方法和工具,让你能够轻松地将你的网站上线。 不仅仅是代码,更是思维的转变 本书的目标不仅仅是让你学会写Django代码,更重要的是让你理解Web开发的思维方式。我们将引导你思考如何设计一个清晰、可维护、安全且可扩展的Web应用。通过大量的实践,你将逐渐培养出解决问题的能力,并建立起对Web开发的热情。 适合人群: 对Web开发充满好奇,但不知从何开始的编程新手。 已经掌握Python基础,希望将其应用于Web开发的学习者。 想要快速搭建原型,验证想法的开发者。 对构建自己的在线作品集、博客、小型社区网站感兴趣的个人。 准备好了吗? 翻开本书,我们将一起踏上这段激动人心的Django建站之旅。每一个代码片段,每一个实践步骤,都将是你迈向Web开发者之路的坚实阶梯。让我们一起,用代码点亮你的第一个网站!