什么是好的Django工作流程?

17 投票
6 回答
3841 浏览
提问于 2025-04-16 13:29

我刚开始学习Python和Django。

在开始一个新项目之前,你通常会先做些什么,然后再开始写代码呢?

比如,可以按照以下步骤进行:

  1. 先配置settings.py文件
  2. 配置models.py,来设计数据结构
  3. 创建模板文件
  4. 定义视图/页面
  5. 同步数据库
  6. 等等

所以我想问的是,做一个Django应用时,有什么好的工作流程可以帮助完成这些必要的步骤?这也可以作为一个待办事项清单。在Django的权威指南中,作者提到过从上到下或从下到上的方法。有没有人能进一步解释一下这个,并分享一下他们的过程?

谢谢。

6 个回答

2

我个人在没有写出视图之前是无法制作模板的(除非是做个Photoshop草图),但一般来说,我会在有了计划之后再开始。

对我来说,最重要的是不要一头扎进代码里,而是花时间根据用户会看到的“屏幕”或“页面”来设计模型结构。

一旦我定义了用户体验,我会确保后台足够强大,能够支持这种体验。如果我没有想清楚用户的体验,很多细节可能会被遗漏,这些在代码里是可以实现的,但对于网站、默认的Django管理界面等来说并不理想。

在敏捷开发和详细规格之间总是有权衡:我觉得找到一个重要的平衡点很关键。敏捷开发是好的:在写第一行代码之前,没必要把每个细节都计划好,因为到最后你的需求可能会变化。你不知道用户会如何真正使用这个网站。

另一方面,如果没有计划,你可能会得到一个混乱的基础,这会影响到未来的所有代码。

一个有根据的猜测是个不错的开始。不要想得太多或假设太多,但一定要对用户在第一阶段如何与网站互动有个清晰的想法。

8

一个Django应用需要哪些步骤?

其实只需要两个必要的步骤。

第一步是写设置,第二步是写urls.py。

其他的步骤都是可选的。

这也可以当作一个待办事项清单。

这样做不太好。你不需要一个Django功能的清单,而是需要一系列的使用案例或用户故事,这些是你必须实现的。

不知道为什么,你漏掉了Django两个最重要和最有价值的功能。一个是配置默认的管理界面,另一个是编写单元测试。默认的管理界面非常有用,而单元测试则是绝对重要的。

你可以这样做:

  1. 收集使用案例。

  2. 对使用案例进行优先级排序。

  3. 定义参与者。参与者的类别会成为安全模型中的组。

  4. 定义足够的“应用”,以满足第一次发布的使用案例。定义URL结构。好用的URL是不会改变的。

  5. 构建第一个使用案例:模型(包括安全),管理,URL,测试,表单,视图和模板。注意这些是文件名(models.py, admin.py等),模板除外。还要注意,表单和管理应该在不同的模块中定义,尽管这不是强制的。模板会分为一个通用的模板目录和特定于应用的模板。

  6. 构建第二个使用案例:模型(包括安全),管理,URL,测试,表单,视图和模板。

...

最后,打包发布。调整设置,配置数据库和mod-wsgi。

20

遵循敏捷开发的方法。完成一个小项目,从头到尾。包括模型、测试和用户体验。然后在这个基础上继续改进。不断迭代。

这才是软件开发的正确方式。

为了高效地进行开发,你需要一些工具:(别急着去找,你会需要它们的。

自动化的数据库迁移、自动构建系统、自动更新和部署。这些都和django没有直接关系。可以适当地使用pipfabrichudsontwillsouth

要注意,不要一下子给自己增加太多负担,特别是你刚开始学习的时候。

撰写回答