在正式开始写代码之前,设置好开发环境是非常重要的。你要确保所有必须的组件都已安装好。本章将概述五个你需要了解的关键组件的设置和使用。清单如下:

  • 使用命令行
  • Python
  • Python包管理器pip虚拟环境
  • 集成开发环境(IDE),如果你选择使用的话
  • 版本控制系统(VCS), GIT

如果你已经安装了Python 2.7/3.4/3.5 和 Django 1.9/1.10,而且对这些技术很熟悉的话,你可以直接跳到Django基础章节。否则的话,请看下面关于不同组件的概览,了解它们的重要性,以及如何设置各种组件。

开发环境

设置开发环境是比较乏味的,也容易让人沮丧。它不是经常需要去做的事情。在下文中,我们将读者起步时需要用到的一些核心组件罗列出来,并教大家怎么安装。

凭经验来说,设置开发环境时将各个步骤记录下来是个好主意,因为说不定哪天你又需要重新设置一遍:也许你买了新电脑,也许别人请你帮忙在他们的电脑上设置开发环境。做好记录可以在将来节省很多时间。不要只看眼前!

2.1 Python

这本书要求你的电脑上已安装了2.7系列的Python——至少2.7.5版本以上,或者3.4+版本也没问题。

译者注:关于安装python和pip的教程网上很多,很容易找到,比如这个

不知道怎么使用Python?

如果你以前没有使用过Python,或者你想复习以下,我们强烈建议你阅读下面一个或多个教程:

这些教程能让你熟悉Python基础,这样就能开始用Django开发。并不是只有Python专家才能使用Django。Python非常了不起,如果你曾经学习过其他编程语言,你会很容易上手。

2.2 Python包管理器

Pip是一种python包管理器,让你可以通过安装各种python库来增强功能。

包管理器,是你电脑上的一个软件包,用于自动进行安装、更新、配置、删除包,而且不仅仅只针对python,也包括你的操作系统和一些其他环境。维护python包是相当痛苦的。大部分包都有依赖的包,这些包也要安装。而那些包可能会相互冲突或者要求特定的版本。另外,这些包的系统路径都要配置和维护。幸好pip可以搞定一切,让你高枕无忧。

用命令行pip试着运行它。如果该命令无法运行,说明还没有安装。

TODO pip安装

同时你也要确保Django和pillow(一种python图片处理库)已经安装。运行下面的命令:

$ pip install -U django==1.9.10
$ pip install pillow

2.3 虚拟环境 Virtual Environments

快要一切就绪了!但是,有一点需要指出,还存在一些缺陷。假如你有另外一个python应用需要不同版本的python,或者你想在保留Django1.9项目的同时切换到新版本的Django,应该怎么办?

解决方法就是运用虚拟环境virtual environments. 虚拟环境允许安装多个Python,它们各自的包也可以和谐共存。这是时下广泛使用的Python安装配置方法。

虽然虚拟环境不是强制安装的,但是强烈推荐。

译者注:虚拟环境安装配置的教程也很容易找到,比如这个

2.4 集成开发环境 IDE

虽然并非绝对必要,但是一个好的基于python的集成开发环境会在开发过程中提供很大的帮助。目前流行的IDE有Pycharm 和 PyDev (Eclipse IDE的一个插件)。Python Wiki 上有最新的python IDE清单。

找一个适合你的IDE,有些需要你购买许可证。

最理想的是选择一款集成了Django的IDE。

我们使用的是Pycharm,因为它支持虚拟环境,并且集成了Django。Pycharm的配置本书不再赘述,可以参照配置指南

2.5 代码仓库

还要指出的是,当你开发代码时,应该始终将代码储存再一个版本控制仓库中,比如SVN或者GIT。目前我们暂时不做详细解释,先马上开始开发一个Django程序。后面有一个GIT速成课的章节供读者参考。我们强烈建议你为你自己的项目建立一个Git仓库。

练习

为了熟悉开发环境,尝试下面的练习:

  • 安装Python 2.7.5+/3.4+ 和 Pip
  • 用命令行工具创建一个叫做code的目录,用来在其中创建我们的项目
  • 设置你的虚拟环境(可选)
  • 安装Django和Pillow包
  • 如果还没有在代码仓库网站(如GitHub, BitBucket 等)建立过账户,建立一个
  • 下载并配置一个集成开发环境,比如Pycharm

如前所述,可以使用我们的GitHub仓库储存的本书源代码

如果你找到任何错误或问题,请通过在GitHub上请求更改来让我们知道。

如果你在练习中遇到任何困难,请查看仓库中的源代码,看我们是怎么做的。

Tango with django 1.9 中文——2.准备工作的更多相关文章

  1. Tango with Django 1.9 中文——1.概述

    译者注:英文书地址https://leanpub.com/tangowithdjango19/,作者为Leif Azzopardi 和 David Maxwell.本文仅为尝试.学习和交流,著作权利归 ...

  2. Tango with django 1.9 中文——3.Django基础

    让我们开始运用Django.本章主要是给你一个关于创建新项目和新应用过程的概览.在本章的末尾,你将建立起一个简单的由Django驱动的网站. 3.1 配置测试 让我们测试以下你的Python和Djan ...

  3. 【翻译】How To Tango With Django 1.5.4 第五章

    5数据模型和数据库 一个模型就是一个描述你数据表的python对象.不用再通过SQL来操作数据库,而是使用python对象来操作数据库. 5.1rango要求 ...一个目录下面有多个下面 ...一个 ...

  4. Django REST FrameWork中文教程2:请求和响应

    从这一点开始,我们将真正开始覆盖REST框架的核心.我们来介绍几个基本的构建块. 请求对象REST框架引入了Request扩展常规的对象HttpRequest,并提供更灵活的请求解析.Request对 ...

  5. Django REST framework 中文教程1:序列化

    建立环境 在我们做任何事情之前,我们将使用virtualenv创建一个新的虚拟环境.这将确保我们的包配置与我们正在开展的任何其他项目保持良好的隔离. virtualenv envsource env/ ...

  6. django JsonResponse返回中文时显示unicode编码(\u67e5\u8be2)

    django JsonResponse返回中文时显示unicode编码(\u67e5\u8be2) 关注公众号"轻松学编程"了解更多. 原因 这个unicode编码,是python ...

  7. Django 后台支持中文方法

    今天遇到的一个问题,mark一下: django后台可以支持中文界面,一开始一直纠结于settings.py 中 LANGUAGE_CODE = 'en-us'中的'en-us'该更改成什么.zh-c ...

  8. Django导出excel中文乱码解决方案

    Django官方文档有关于怎么生成csv文件的方法 import csv from django.http import HttpResponse def some_view(request): # ...

  9. [TimLinux] django 下载功能中文文件名问题

    from django.utils.encoding import escape_uri_pathfrom django.http import HttpResponse def download(r ...

随机推荐

  1. XV6学习(12)Lab lock: Parallelism/locking

    代码在github上 这一次实验是要对XV6内部的锁进行优化,减少锁争用,提高系统的性能. Memory allocator (moderate) 第一个实验是对XV6内核的内存页面分配器进行改进,改 ...

  2. 2018 ccpc吉林 The Tower

    传送门:HDU - 6559 题意 在一个三维空间,给定一个点和他的三维速度,给定一个圆锥,问这个点最早什么时候能撞上圆锥. 题解 本来一直想着怎么求圆锥的方程,然后....队友:这不是二分吗!然后问 ...

  3. 吉哥系列故事——完美队形II(马拉车算法)

    吉哥又想出了一个新的完美队形游戏! 假设有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] ... h[n],吉哥希望从中挑出一些人,让这些人形成一个新的队形,新的队形若满足以下三点要求 ...

  4. POJ 3281 Dining(最大流板子)

    牛是很挑食的.每头牛都偏爱特定的食物和饮料,其他的就不吃了. 农夫约翰为他的牛做了美味的饭菜,但他忘了根据它们的喜好检查菜单.虽然他不可能喂饱所有的人,但他想让尽可能多的奶牛吃上一顿有食物和水的大餐. ...

  5. Codeforces Round #673 (Div. 2) B. Two Arrays (贪心)

    题意:给你一组数\(a\)和一个数\(T\),将这组数分为两组\(c\)和\(d\),定义\(f(x)\)为数组\(x\)中任意两个不同元素的和为\(T\)的个数,问为了使\(min(f(c)+f(d ...

  6. Kafka SASL/SCRAM+ACL实现动态创建用户及权限控制

    kafka系列文章 第一章 linux单机安装kafka 第二章 kafka--集群安裝部署(自带zookeeper) 第三章 Kafka SASL/SCRAM+ACL实现动态创建用户及权限控制 Ka ...

  7. Redis Cluster 分布式集群(上)

    Redis Cluster 介绍 Redis 集群是一个可以在多个Redis节点之间进行数据共享的设施(installation): Redis 集群不支持那些需要同时处理多个键的 Redis 命令, ...

  8. Zabbix 触发器配置多监控项阈值

    配置内存自定义监控项 # 监控内存命令 [root@web01 ~]# free -m|awk '/^Mem/{print $NF/$2}' 0.664609 [root@web01 ~]# free ...

  9. ACM-ICPC 2018 徐州赛区网络预赛 B BE, GE or NE 【模拟+博弈】

    题目:戳这里 题意:A和B博弈,三种操作分别是x:加a,y:减b,z:取相反数.当x或y或z为0,说明该操作不可取,数据保证至少有一个操作可取,给定一个区间(l,k)和原始数字m,如果A和B在n次操作 ...

  10. 关于FFT的一些理解,以及如何手工计算FFT加深理解和验证正确性

    总结缺少逻辑性和系统性,主要便于自己理解和记忆 关于一维FFT的 于是复系数Cn是图像傅里叶变换的yn列向量 于是我们看到最后引入,Cn这个复系数的模来表征频率波的振幅记为Sn(即简谐波叠加的数量 然 ...