0

这可能有点干净和绿色,但是当我试图向一只橡皮鸭解释我的设置时,很多时候我醒来发现自己在一堆我自己的头发中,而鸭子还在那里,无情地盯着我看。那是我知道是时候将此事升级为 SO 的时候了。

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

有人将我从引导地狱中拯救出来。

  • 操作系统:ubuntu 12.04 服务器 lts
  • 数据库:MySQl
  • 框架:Django
  • 背景:使用 d3.js 创建报告应用程序
  • 事实:这个项目不会使用 PaaS

我是怎么做的,

  1. 安装了easyinstall
  2. 安装点
  3. 安装 django ( pip install gunicorn django )
  4. 安装了 gunicorn
  5. 设置 nginx
  6. 启动 django 项目 (cmd: startproject, runproject)

----- 这是事情变得模糊的部分 -----

  1. 安装git???
  2. 安装django-south?
  3. 添加 h5bp(待办事项)

希望知道我是否以正确的顺序执行此操作或任何其他设置 django 的明确指南

4

2 回答 2

1

这是一个很难回答的问题,因为它更多的是关于意见而不是其他任何东西。每个人的工作方式都不同。但是,如果您了解原因,那么您将更好地准备判断其他引导脚本,甚至更好地构建您自己的脚本来执行您想要的操作。

以下是您需要确保得到妥善处理的事项。

  1. 将您的开发包与系统范围的 Python 安装隔离开来。用于virtual environments完成此操作。此外,您应该确保固定您的软件包,以免在版本升级时感到意外。

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

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

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

最后,我的一些建议。

  1. 除非您有令人信服的理由使用 mysql,否则请使用 postgresql。postgresql 最适用于 django,而某些 ORM 功能(如distinct在列上使用)仅适用于 postgresql。

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

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

  4. django-south建议使用,但请确保在安装之前了解它对项目的影响;否则,您将在几次迭代后最终导致无法运行的迁移 - 然后您将花费大量时间尝试修复迁移,或者只是删除数据库并重新开始。

于 2013-05-16T06:00:39.727 回答
0

找到了这个很棒的资源,这几乎正是我正在寻找的。

史诗服务器于 2013 年更新

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

senko 更新于 2011 年

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

于 2013-05-16T03:37:14.683 回答