Tango with django 1.9 中文——2.准备工作
在正式开始写代码之前,设置好开发环境是非常重要的。你要确保所有必须的组件都已安装好。本章将概述五个你需要了解的关键组件的设置和使用。清单如下:
- 使用命令行
- 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,或者你想复习以下,我们强烈建议你阅读下面一个或多个教程:
- Learn Python in 10 Minutes, Stavros著;
- The Official Python Tutorial;
- Think Python: How to Think like a Computer Scientist, Allen B.Downey著;
- Learn to Program, Jennifer Campbell 和 Paul Gries著。
这些教程能让你熟悉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.准备工作的更多相关文章
- Tango with Django 1.9 中文——1.概述
译者注:英文书地址https://leanpub.com/tangowithdjango19/,作者为Leif Azzopardi 和 David Maxwell.本文仅为尝试.学习和交流,著作权利归 ...
- Tango with django 1.9 中文——3.Django基础
让我们开始运用Django.本章主要是给你一个关于创建新项目和新应用过程的概览.在本章的末尾,你将建立起一个简单的由Django驱动的网站. 3.1 配置测试 让我们测试以下你的Python和Djan ...
- 【翻译】How To Tango With Django 1.5.4 第五章
5数据模型和数据库 一个模型就是一个描述你数据表的python对象.不用再通过SQL来操作数据库,而是使用python对象来操作数据库. 5.1rango要求 ...一个目录下面有多个下面 ...一个 ...
- Django REST FrameWork中文教程2:请求和响应
从这一点开始,我们将真正开始覆盖REST框架的核心.我们来介绍几个基本的构建块. 请求对象REST框架引入了Request扩展常规的对象HttpRequest,并提供更灵活的请求解析.Request对 ...
- Django REST framework 中文教程1:序列化
建立环境 在我们做任何事情之前,我们将使用virtualenv创建一个新的虚拟环境.这将确保我们的包配置与我们正在开展的任何其他项目保持良好的隔离. virtualenv envsource env/ ...
- django JsonResponse返回中文时显示unicode编码(\u67e5\u8be2)
django JsonResponse返回中文时显示unicode编码(\u67e5\u8be2) 关注公众号"轻松学编程"了解更多. 原因 这个unicode编码,是python ...
- Django 后台支持中文方法
今天遇到的一个问题,mark一下: django后台可以支持中文界面,一开始一直纠结于settings.py 中 LANGUAGE_CODE = 'en-us'中的'en-us'该更改成什么.zh-c ...
- Django导出excel中文乱码解决方案
Django官方文档有关于怎么生成csv文件的方法 import csv from django.http import HttpResponse def some_view(request): # ...
- [TimLinux] django 下载功能中文文件名问题
from django.utils.encoding import escape_uri_pathfrom django.http import HttpResponse def download(r ...
随机推荐
- hdu 6822 Paperfolding 规律+排列组合+逆元
题意: 给你一片纸,你可以对它进行四种操作,分别是向上.向下.向左.向右对折.把对折之后的纸片横向剪开,再纵向剪开(十字架剪开) 问你你能剪出来的纸片的期望个数 题解(参考:https://blog. ...
- Codeforces Round #579 (Div. 3) D2. Remove the Substring (hard version) (思维,贪心)
题意:给你一个模式串\(t\),现在要在主串\(s\)中删除多个子串,使得得到的\(s\)的子序列依然包含\(t\),问能删除的最长子串长度. 题解:首先,我们不难想到,我们可以选择\(s\)头部到最 ...
- tomacat服务器上web资源访问流程、web应用打成war包发布、Context的reloadable属性、tomacat体系架构
一.web资源访问流程 二.web应用打成war包发布到服务器 好处:打成war包发布到服务器,那么服务器会自动把它拆解成文件夹 jar命令是java自带的一个命令,如果之前配置过Java编译环境就可 ...
- hdu5459 Jesus Is Here
Problem Description I've sent Fang Fang around 201314 text messages in almost 5 years. Why can't she ...
- 牛客练习赛71 C.数学考试 (DP,容斥原理)
题意:RT 题解:先对\(p\)排个序,然后设\(dp[i]\)表示前\(i-1\)个\(p[i]\)满足条件但是\(p[i]\)不满足,即在\([1,p[i]]\)中不存在从\(p[1]\)到\(p ...
- P3376 【模板】网络最大流——————Q - Marriage Match IV(最短路&最大流)
第一道题是模板题,下面主要是两种模板,但都用的是Dinic算法(第二个题也是) 第一题: 题意就不需要讲了,直接上代码: vector代码: 1 //invalid types 'int[int]' ...
- codeforces 1013B 【思维+并查集建边】
题目链接:戳这里 转自:参考博客 题意:给一个n*m的矩阵,放入q个点,这q个点之间的关系是,若已知这样三个点(x1,y1),(x2,y1),(x1,y2),可以在(x2,y2)处生成一个新的点,对于 ...
- codeforces 858A
A. k-rounding time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- Leetcode(7)-反转整数
给定一个 32 位有符号整数,将整数中的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假 ...
- HDU 6395 Sequence(分段矩阵快速幂)题解
题意: 已知\(A,B,C,D,P,n\)以及 \[\left\{ \begin{aligned} & F_1 = A \\ & F_2 = B\\ & F_n = C*F_{ ...