今天我将开始一个关于 Django 基础知识的全新系列教程。这是一个开始学习 Django 的完整入门指南。教程材料一共会被分为七个部分。咱们将从安装,开发环境的准备,模型,视图,模板,URL到更高级的主题(如迁移,测试和部署)中详细探讨全部基本概念。html
我想作一些不同的事情。一个容易学习,内容丰富且不失趣味的教程。个人想法是在文章中穿插一些漫画的方式来演示说明相应的概念和场景。我但愿你们可以享受这种阅读!python
可是在咱们开始以前...git
当年我在一所大学担任代课教授时,我曾经在计算机科学专业给新来的学生讲授网络开发学科。那时我老是会用下面这个孔夫子的名言开始新的课程:github
(译者注:不肯定是孔子讲的,但这句话早在中国古代就有所提到,出自荀子《儒效篇》“不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之;学至于行之而止矣”)web
因此,请动起手来!不要只是阅读教程。咱们一块儿来练习!经过实践和练习你会收获的更多。数据库
Django是一个用python编写的Web框架。Web框架是一种软件,基于web框架能够开发动态网站,各类应用程序以及服务。它提供了一系列工具和功能,能够解决许多与Web开发相关的常见问题,好比:安全功能,数据库访问,会话,模板处理,URL路由,国际化,本地化,等等。django
使用诸如 Django 之类的网络框架,使咱们可以以标准化的方式快速开发安全可靠的Web应用程序,而无需从新发明轮子。vim
那么,Django有什么特别之处呢?对于初学者来讲,它是一个Python Web框架,这意味着你能够受益于各类各样的开源库包。python软件包资料库(pypi)拥有超过11.6万个软件包(2017年9月6日的数据)。若是当你想要解决一个特定的问题的时候,可能有人已经为它实现了一个库来供你使用。缓存
Django是用python编写的最流行的web框架之一。它绝对是最完整的,提供了各类各样的开箱即用的功能,好比用于开发和测试的独立Web服务器,缓存,中间件系统,ORM,模板引擎,表单处理,基于Python单元测试的工具接口。Django还自带内部电池,提供内置应用程序,好比一个认证系统,一个可用于 CRUD
(增删改查) 操做而且自动生成页面的后台管理界面,生成订阅文档(RSS/Atom),站点地图等。甚至在django中内建了一个地理信息系统(GIS)框架。安全
Django的开发获得了Django软件基金会的支持,而且由jetbrains和instagram等公司赞助。Django如今已经存在了至关长的一段时间了。到如今为止,活跃的项目开发时间已经超过12年,这也证实了它是一个成熟,可靠和安全的网络框架。
知道谁在使用Django是很好的,同时也想想你能够用它来作些什么。在使用Django的大型网站有:Instagram,Disqus,Mozilla,Bitbucket,Last.fm,国家地理。
想知道更多的示例,你能够到Django Sites数据库中查看,它提供超过五千个Django驱动的网站列表。
顺便说一下,去年在Django 2016年发布会上,Django核心开发人员,Instagram员工 carl meyer
,就Instagram如何大规模使用Django以及它如何支持他们的用户增加作过一次分享。这是个一小时的演讲,若是你有兴趣学习了解更多的话,这是一次颇有趣的演讲。
咱们须要作的第一件事是在咱们的电脑上安装一些程序,以便可以开始使用django。基本的设置包括安装Python,Virtualenv和Django。
使用虚拟环境不是强制性的,可是我仍是强烈建议你们这样作。若是你是一个初学者,那么最好造成一个良好的开端。
当你在用 Django 开发一个网站或者一个Web项目的时候,不得不安装外部库以支持开发是很是常见的事情。使用虚拟环境,你开发的每一个项目都会有其独立的环境。这样的话,包之间的依赖关系不会发生冲突。同时也使得你能在不一样Django版本上运行的本地机器的项目。
在后面你会看到使用它是很是简单的!
咱们想要作的第一件事是安装最新版的Python,那就是Python 3.6.2。至少是在我写这篇教程的时候。若是有更新的版本,请使用新版。接下来的步骤也应该保持大体相同的作法。
咱们将使用Python 3,由于大部分主要的Python库已经被移植到python 3,而且下一个主要的django版本(2.x)也将再也不支持python 2。因此Python 3是正确的选择。
最好的方法是经过Homebrew安装。 若是你的Mac尚未安装Homebrew的话,在终端中执行下面的命令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
复制代码
若是你没有安装命令行工具(Command Line Tools),Homebrew的安装可能须要稍长一点的时间。但它会帮助你处理好一切,因此不用担忧。只须要坐下来等到安装完成便可。
当你看到如下消息时,就表明安装完成了:
==> Installation successful!
==> Homebrew has enabled anonymous aggregate user behaviour analytics.
Read the analytics documentation (and how to opt-out) here:
https://docs.brew.sh/Analytics.html
==> Next steps:
- Run `brew help` to get started
- Further documentation:
https://docs.brew.sh
复制代码
执行下面的命令来安装Python 3:
brew install python3
复制代码
因为macOS本来已经安装了python 2,因此在安装python 3以后,你将能够同时使用这两个版本。
须要运行Python 2的话,在终端中经过命令 python
启动。若是想运行Python 3,则使用python3
来启动。
咱们能够在终端中测试一下:
python3 --version
Python 3.6.2
复制代码
很棒,python已经启动并正在运行。下一步:虚拟环境!
接下来这一步,咱们将经过pip(一个管理和安装Python包的工具)来安装Virtualenv。
请注意,Homebrew已经为你安装好了pip,在python 3.6.2下的名称为 pip3
。
在终端中,执行下面的命令:
sudo pip3 install virtualenv
复制代码
到目前为止,咱们执行的安装都是在操做系统环境下运行的。从如今开始,咱们安装的全部东西,包括django自己,都将安装在虚拟环境中。
这样想一下:对于你开始的每一个Django项目,你首先会为它建立一个虚拟环境。这就像每一个Django项目都有一个沙盒。因此你随意运行,安装软件包,卸载软件包而不会破坏任何东西。
我习惯在电脑上建立一个名为Development的文件夹。而后,我用它来组织我全部的项目和网站。但你也能够按照接下来的步骤建立适合你本身的目录。
一般,我首先在Development文件夹中建立一个项目名称的新文件夹。既然这将是咱们第一个项目,咱们不必挑选一个独特的名字。如今,咱们能够称之为myproject。
mkdir myproject
cd myproject
复制代码
这个文件夹是级别较高的目录,将存储与咱们的Django项目相关的全部文件和东西,包括它的虚拟环境。
因此让咱们开始建立咱们的第一个虚拟环境并安装django。
在myproject文件夹中:
virtualenv venv -p python3
复制代码
这样咱们的虚拟环境就建立好了。在开始使用它以前,咱们须要先激活一下环境:
source venv/bin/activate
复制代码
若是你在命令行前面看到 (venv),就表明激活成功了,就像这样:
让咱们试着了解一下这里发生了什么。咱们建立了一个名为venv的特殊文件夹。该文件夹内包含了一个python的副本。在咱们激活了venv环境以后,当咱们运行Python
命令时,它将使用咱们存储在venv里面的本地副本,而不是咱们以前在操做系统中安装的那个。
另外一个重要的事情是,pip程序也已经安装好了,当咱们使用它来安装Python的软件包(好比Django)时,它将被安装在venv环境中。
请注意,当咱们启用venv时,咱们将使用命令python
(而不是python3
)来调用Python 3.6.2,而且仅使用pip
(而不是pip3
)来安装软件包。
顺便说一句,要想退出venv环境,运行下面的命令:
deactivate
复制代码
可是,咱们如今先保持激活状态来进行下一步。
很简单,如今咱们已经启动了venv,运行如下命令来安装django:
pip install django==1.11.4
# 译注:目前django已经升级到2.x版本,这里为了跟后续教程内容保持一直,因此必须指定版本号进行安装
# 除非你有能力 debug,不然不建议你使用django 2.x
复制代码
如今一切就绪!
本文是公众号「Python之禅」发起的《Django入门指南》翻译计划,后续章节可关注公众号获取
译者:vimiix