共享各种Django设置指南

时间:2013-05-16 03:26:36

标签: python django git virtualenv django-south

这可能有点干净和绿色,但是当我试图将我的设置解释为橡皮鸭时,我多次醒来发现自己在一堆自己的头发中,鸭子仍在那里,无情地盯着我。多数民众赞成在我知道是时候把事情升级为SO了。

令我感到沮丧的是,最初当我按照我认为看起来可信的指南,安装virtualenv等等,然后开始我的hello world项目。在研究网络服务器的同时,我遇到了apache2与gunicorn的困境,我认为可以使用gunicorn。没有想太多,并开始使用另一个Hello World应用程序,然后我意识到我错过了版本控制并创建了另一个hello world项目,我在这里咬我的指甲和吃我的头发,因为我发现我可能有可能弄乱了文件系统文件夹结构和约定,在这里我创建了我的第四个django hello world app。

有人救我脱离自助地狱。

  • 操作系统:ubuntu 12.04服务器lts
  • db:MySQl
  • 框架:Django
  • 背景:使用“利用d3.js”创建报告应用
  • 事实:此项目不会使用PaaS

我是怎么做的,

  1. 已安装easyinstall
  2. 已安装pip
  3. 安装了django(pip install gunicorn django)
  4. 安装了gunicorn
  5. 设置nginx
  6. 启动了django项目(cmd:startproject,runproject)
  7. -----这是事情变得模糊的部分-----

    1. 安装git ???
    2. 安装django-south?
    3. 添加h5bp(待办事项)
    4. 很高兴知道我是按正确的顺序执行此操作还是设置django的任何其他明确指南

2 个答案:

答案 0 :(得分:1)

这是一个难以回答的问题,因为它更多的是关于意见而不是其他任何事情;每个人都以不同的方式工作。但是,如果您理解建议背后的原因,那么您将更好地准备判断其他引导脚本,并且 - 甚至更好 - 构建您自己想要的内容。

以下是您需要确保照顾的事项。

  1. 将您的开发包与系统范围的Python安装隔离开来。使用virtual environments完成此操作。此外,您应该确保pin your packages以便在升级版本时不会感到意外。

  2. 使用任何形式的版本控制。它不一定是git。您不需要使用github.com。使用mercurial,cvs,bazaar或其他任何东西。重要的是你使用某些东西。所以找出对你有用的东西,然后开始。

  3. 对于开发,甚至不用担心Web服务器。 Django附带了一个你应该在开发过程中使用的网络服务器。使用python manage.py runserver运行它。完成开发后,应部署支持wsgi的任何Web服务器。该文档提供了deployment guides,可以帮助您解决此问题。

  4. 每个人和他们的狗都有文件夹布局和结构的建议。问题是,每个人都有自己的推荐理由。如果您不理解为什么,您只会对布局感到沮丧。所以,我的建议是从django附带的标准布局开始。我要添加的唯一内容是您创建一个docs/目录,您可以在其中粘贴项目的任何/所有文档;以及requirements/目录,您可以在其中保存所有requirements files并保持这两个更新。

  5. 最后,我的一些建议。

    1. 使用postgresql除非你有令人信服的理由使用mysql。 postgresql最适合使用django和一些ORM功能(比如在列上使用distinct)只适用于postgresql。

    2. 简化模板和视图。不要在视图中填充大量逻辑,而是创建可以导入的其他python模块。这将使您的项目易于扩展(例如,如果您要创建API)。您的模板绝对应该具有最少量的逻辑。如果您使用自定义模板标记,请使它们尽可能简单,因为它们很难调试。

    3. 不要害怕在ORM中创建自定义模型管理器和其他技巧。你可以在那里做很多事情,这将使你的应用程序更容易开发。

    4. 建议您使用
    5. django-south,但请确保在安装之前了解它对项目的影响;否则你只会在经过一次无法运行的迁移的几次迭代后结束 - 然后你会花费大量的时间来尝试修复迁移,或者只是丢弃数据库并重新开始。

答案 1 :(得分:0)

找到了这个几乎正是我正在寻找的优秀资源。

epicserv 2013更新

https://gist.github.com/epicserve/1332256(2013年更新)

senko更新2011

http://senko.net/en/django-nginx-gunicorn/