• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > 全面剖析Python的Django框架中的项目部署技巧第1/2页

全面剖析Python的Django框架中的项目部署技巧第1/2页

作者:goldensun 字体:[增加 减小] 来源:互联网

goldensun 通过本文主要向大家介绍了python django框架,python安装django,python.django,python django教程,python web django等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

项目开始时是一个关键时刻,选择会对项目产生长期的影响。有很多关于如何开始使用Django框架的教程,但很少讨论如何专业地使用Django,或如何使用行业公认的最佳做法来确保你的项目规模的持续增长。事前的筹划让你(和所有同事的生活)在走向将来时更容易。

文章结束时,你将有

  •     一个全功能的Django 1.6项目
  •     源代码受控的所有资源(使用Git或Mercurial)
  •     自动回归和单元测试(使用unittest库)
  •     一个独立于特定环境的安装项目(使用virtualenv)
  •     自动化的部署和测试(使用Fabric)
  •     自动数据库迁移 (使用South)
  •     一个标度你站点的开发工作流程

除第一部在官方教程中外其他部分教程里都没有。它们应该这样。如果你想开始一个新的、生产就绪的Django 1.6项目,请继续往下看。

先决条件

假定你已了解Python的基本知识,同时,以往的一些Django经验会有帮助,但这不是必要的。你需要git或Mercurial来进行版本控制。就这些!
准备安装

我假设你已经安装了Python。如果你没有的话到python.org找到与你系统架构相符的版本下载安装。我使用一个Linode上的64位的Ubuntu服务器,我很高兴使用Linode的服务。

那么,第一步是什么呢?安装Django?不完全是。将安装包直接安装到你当前的site-packages里有一个常见的问题:如果你的机器上有一个以上的Python项目使用Django等其他库,你可能会碰到应用和安装软件库之间依赖性的问题。因此,我们将使用virtualenv和它的延展virtualenvwrapper来管理我们的Django安装。这是Python和Django用户的实践建议。

如果你使用pip来安装第三方库(我不明白你为什么不),你可以通过简单的操作安装virtualenv和virtualenvwrapper。
 

$ pip install virtualenvwrapper
</div>

安装完后,将下附内容添加到你的shell启动配置文件中(.zshrc、.bashrc、.profile等)
 

重载一下你的启动配置文件(source .zshrc),现在你已经就绪了。

创建一个新环境

创建一个虚拟环境很简单,只需输入
 

$ mkvirtualenv django_project
</div>

“django_project”是你的项目的命名。

你会注意到立马发生的一些事情:

    你的shell前面加上了“(django_project)”

    distribute和pip被自动安装了

这里是virtualenvwrapper的一个很有用的部分:它会自动为你准备好环境,让你马上可以使用pip安装库。“(django_project)”的部分是提醒你正在使用的是virtualenv而不是你系统上的Python。要退出虚拟环境只需简单输入deactivate即可。当你要回到你的项目开始工作时,只需使用workon django_project即可。需要注意的是这与vanilla virtualenv工具不同,在哪里运行这些命令都可以。

安装Django

“等一下,‘安装Django'?我已经安装Django了!”,太好了。不过你不会用它的。相反,我们将使用机器上的一个被virtualenv管理的且不会被其他用户(或你自己)弄乱的Django安装。在virtualenv中安装Django,只需输入:
 

$ pip install django
</div>

这样最新版的Django将被安装在你的virtualenv环境里,你可以这样确认:
 

$ which django-admin.py
</div>

这会指出你的$HOME/.virtualenvs/目录。如果没有的话,确认你的输入提示里有“(django_project)”。如果没有,使用workon django_project激活virtualenv。

建立项目

在我们真正开始这个项目之前,我们先来谈一谈。我在过去的几年里咨询过很多Django/Python项目并且和许多开发者讨论过。一个具有压倒性的事实是,那些具有最多困难的事情往往都没有使用任何的版本控制。这听起来让人难以置信(想想GitHub的流行程度吧),但是开发者们根本不会去接触版本控制。也有一些人认为"这是个小项目",没有必要使用版本控制。这是错误的。

这里列出的工具不会让你为了使用版本控制而增加更多额外的支出。

之前,我只提到过git作为(D)VCS。但是,既然这个项目是Python写的,Mercurial也是一个基于Python的不错的选择。因为两者都比较流行,所以你能找到许多在线学习资源。确保你已经安装了git或者Mercurial。两者都可以通过你的distro's packaging系统获取它们。

如果你打算用git,GitHub显然是一个很好的选择可以把你的代码保存到远程仓库里。使用Mercurial的话, Atlassian的Bitbucket是一个不错的选择(它也支持git,所以你用git或者Mercurial都行)

(源码)控制你的环境

即使我们还没真正做什么,但我们知道我们想让所有东西都在源码控制下。我们有两类“东西”将提交:你的代码本身(包括模板,等等)和支持文件,像数据库夹具、South迁移(以后会更多)和requirements.txt文件,列出你的项目依赖的所有包,允许自动构建环境(不需要再次使用pip install安装所有包)。

让我们开始创建我们的项目文件夹。使用django-admin.py提供的startproject命令来设置。
 

$ django-admin.py startproject django_project
</div>

我们将看到创建了一个单独的文件夹:django_project。在django_project文件夹内,我们将看到 另一个包含了常见元素的django_project文件夹:setting.py,urls.py和wsgi.py。在第二个django_project文件夹的同一级内有manage.py文件。

插曲:项目vs.应用程序

你也许会好奇,在Django1.4中,为什么已经有了新建应用程序的命令还要增加新建项目的命令。答案在于Django“项目”和Django“应用程序”的区别。简单来说,一个项目是一套完整的网站或者应用。一个“应用程序”是一个可以用在任何Django项目中的很小的、(希望是)独立的Django应用。如果你正在构建一个叫做“超级博客”的博客应用,那么“超级博客”就是你的Django项目。如果“超级博客”支持读者投票,那“投票”就是被“超级博客“使用的一个Django应用程序。这个概念就是需要你的投票应用程序可以应用在其他需要用户投票的Django项目中,而不是仅能应用在”超级博客“项目中。一个项目就是一堆应用程序按照项目特定的逻辑构建的一个集合。一个应用程序可以应用在多个项目中。

尽管你会本能地倾向于在你的“投票”应用程序中包含大量"超级博客"的特定代码和信息,但避免这样有许多好处。基于松耦合的原理,将你的应用编写为一个独立的实体可以保持设计意图,并且可以避免项目里的bug直接影响到你的应用。这也意味着,如果你希望的话,你可以把你的任何应用程序发给另一个开发者,且他们不需要访问或更改你的主项目。

像软件开发中的许多事情一样,这需要一点付出,但回报很丰厚。

创建仓库

现在我们的项目里已经有一些“代码”了(确实来说只是一些股票脚本和空的配置文件,恕我这样说),现在是我们初始我们源码控制库再好不过的时间了。下面是在Git和Mercurial中实现的步骤。
git
 

$ git init
</div>

这条命令在当前目录创建了一个git仓库。将我们所有的文件添加到git以便提交。
 

$ git add django_project
</div>

现在,我们将代码切实提交到我们的新库中:
 

$ git commit -m 'Initial commit of django_project'
</div>

Mercurial
 

$ hg init
</div>

这条命令在当前目录创建了一个Mercurial仓库。将我们所有的文件添加到git以便提交。
 

$ hg add django_project
</div>

现在,我们将代码切实提交到我们的新库中:
 

$ hg commit -m 'Initial commit of django_project'
</div>

如果你打算使用像GitHub或者Bitbucket,现在是时候把代码push上去了。

使用South进行数据库迁移

Django中最令人沮丧的特性之一是管理模型的变化和

您可能想查找下面的文章:

  • Python之Web框架Django项目搭建全过程
  • Python之Web框架Django项目搭建全过程
  • python django事务transaction源码分析详解
  • python+django快速实现文件上传
  • Python+django实现简单的文件上传
  • Python+django实现简单的文件上传
  • 搭建Python的Django框架环境并建立和运行第一个App的教程
  • 搭建Python的Django框架环境并建立和运行第一个App的教程
  • Python的Django框架中消息通知的计数器实现教程
  • Python的Django框架中消息通知的计数器实现教程

相关文章

  • Python中的pprint折腾记
  • python实现实时监控文件的方法
  • python实现的AES双向对称加密解密与用法分析
  • django 文件上传功能的相关实例代码(简单易懂)
  • Python装饰器decorator用法实例
  • python计算一个序列的平均值的方法
  • 探究Python中isalnum()方法的使用
  • Python内置函数的用法实例教程
  • python递归删除指定目录及其所有内容的方法
  • Python操作CouchDB数据库简单示例

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python中functools模块函数解析
    • python的几种开发工具介绍
    • Python的设计模式编程入门指南
    • python函数返回多个值的示例方法
    • Python实现大文件排序的方法
    • Python 创建子进程模块subprocess详解
    • Python多线程学习资料
    • Python实现求最大公约数及判断素数的方法
    • python实现统计代码行数的方法
    • Python创建日历实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有