这可能有点干净和绿色,但是当我试图将我的设置解释为橡皮鸭时,我多次醒来发现自己在一堆自己的头发中,鸭子仍在那里,无情地盯着我。多数民众赞成在我知道是时候把事情升级为SO了。
令我感到沮丧的是,最初当我按照我认为看起来可信的指南,安装virtualenv等等,然后开始我的hello world项目。在研究网络服务器的同时,我遇到了apache2与gunicorn的困境,我认为可以使用gunicorn。没有想太多,并开始使用另一个Hello World应用程序,然后我意识到我错过了版本控制并创建了另一个hello world项目,我在这里咬我的指甲和吃我的头发,因为我发现我可能有可能弄乱了文件系统文件夹结构和约定,在这里我创建了我的第四个django hello world app。
有人救我脱离自助地狱。
我是怎么做的,
-----这是事情变得模糊的部分-----
很高兴知道我是按正确的顺序执行此操作还是设置django的任何其他明确指南
答案 0 :(得分:1)
这是一个难以回答的问题,因为它更多的是关于意见而不是其他任何事情;每个人都以不同的方式工作。但是,如果您理解建议背后的原因,那么您将更好地准备判断其他引导脚本,并且 - 甚至更好 - 构建您自己想要的内容。
以下是您需要确保照顾的事项。
将您的开发包与系统范围的Python安装隔离开来。使用virtual environments
完成此操作。此外,您应该确保pin your packages以便在升级版本时不会感到意外。
使用任何形式的版本控制。它不一定是git。您不需要使用github.com。使用mercurial,cvs,bazaar或其他任何东西。重要的是你使用某些东西。所以找出对你有用的东西,然后开始。
对于开发,甚至不用担心Web服务器。 Django附带了一个你应该在开发过程中使用的网络服务器。使用python manage.py runserver
运行它。完成开发后,应部署支持wsgi的任何Web服务器。该文档提供了deployment guides,可以帮助您解决此问题。
每个人和他们的狗都有文件夹布局和结构的建议。问题是,每个人都有自己的推荐理由。如果您不理解为什么,您只会对布局感到沮丧。所以,我的建议是从django附带的标准布局开始。我要添加的唯一内容是您创建一个docs/
目录,您可以在其中粘贴项目的任何/所有文档;以及requirements/
目录,您可以在其中保存所有requirements files并保持这两个更新。
最后,我的一些建议。
使用postgresql除非你有令人信服的理由使用mysql。 postgresql最适合使用django和一些ORM功能(比如在列上使用distinct
)只适用于postgresql。
简化模板和视图。不要在视图中填充大量逻辑,而是创建可以导入的其他python模块。这将使您的项目易于扩展(例如,如果您要创建API)。您的模板绝对应该具有最少量的逻辑。如果您使用自定义模板标记,请使它们尽可能简单,因为它们很难调试。
不要害怕在ORM中创建自定义模型管理器和其他技巧。你可以在那里做很多事情,这将使你的应用程序更容易开发。
django-south
,但请确保在安装之前了解它对项目的影响;否则你只会在经过一次无法运行的迁移的几次迭代后结束 - 然后你会花费大量的时间来尝试修复迁移,或者只是丢弃数据库并重新开始。
答案 1 :(得分:0)