【发布时间】:2012-10-08 09:51:16
【问题描述】:
抱歉,如果之前已经讨论过这个问题,已经搜索和搜索但没有找到任何有用的东西:)
但是这里有。 我们目前正在重写我们的 webapp 的一部分。我们的应用程序相当陈旧,因此在编程、约定和 url 方面存在一些相当牛仔风格的方法。
我们正在寻找一种简单干净的方式来设计我们的视图和网址,以便我们将来可以更轻松地维护它们。
问题是;到目前为止,我们用于主站点的 urls.py 文件是一团糟。许多 url 指向一个独特的视图,只有一个薄。 前任。 list_books/,edit_book/等。 当涉及到特定格式等时,我们有类似 list_books_json/
(虽然这些不是实际的网址,但只是用来证明一点,因为真正的网址要糟糕得多)
我们现在要做的就是稍微清理一下。我们想知道绕过它的最佳方法是什么?
到目前为止我们所想到的(在阅读了很多关于这个主题的东西之后):
我们考虑过按照以下模式设计我们的网址: 域/对象/动作/
因此,用于在应用程序中更改书籍的应用程序“员工”网站的 url 将是: 员工/书籍 - 查看所有书籍 (GET) 员工/书籍/ID - 查看一本书(GET) staff/books/new - 创建新书 (POST) staff/books/ID/edit - 编辑特定书籍(POST) staff/books/ID/delete - 删除特定书籍(POST)
当时的想法是只有 1 个视图,views.staff_books() 来处理通过网站的“员工”部分处理书籍时的所有这些操作。 以便 staff_books() 检查 ID 或某个“操作”(编辑、新建、删除等)
结果会更少,但需要处理员工/书籍各个方面的更大视图。现在我们有很多只处理一件事的小视图。
这有意义吗,你能看出潜在的问题吗?你们是怎么处理的??
我认为我们迷路的一个地方是格式。 你会把前任放在哪里。在 json 中返回响应的请求? 我们想知道“staff/books.json”或“staff/books/ID.json”等,然后将所有 json 逻辑保存在同一个“staff_books()”视图中。
基本上就是这样。很抱歉,这个问题有点“浮夸”……我们基本上需要一些关于如何构建 url 和视图的示例或好的设计建议。
亲切的问候
皮特
【问题讨论】:
标签: django design-patterns django-views django-urls