在到目前为止我发现的基本 Django 教程和文档中,应用程序被视为项目的一些独立部分。不过,我还没有找到在复杂项目中一起使用它们的解决方案。
我们可以在某个 url 上注册domain/signup
,它由users.views.signup
.
- 对于 GET 请求
signup
呈现signup.html
. - 对于 POST 请求,在评估发布的数据后,它要么呈现
signup.html
一些消息,要么注册一个新用户,将他/她登录并重定向到某个地方。
我们可以在domain/new_post
(或domain/user/new_post
)创建一个新帖子,由 处理posts.views.new_post
。它的行为类似于signup
处理程序:
- 对于 GET 请求,它呈现
new_post.html
. - 对于 POST 请求,它评估发布数据,然后
new_post.html
使用消息呈现或注册新帖子并重定向到某个地方。
一个一般的网站是由几个应用程序组成的,在某些 url 上显示的请求的网页提供了几个应用程序的功能。
例如,登录一些流行的社交网站后,我们可以在我们的墙上创建新条目,搜索用户(通常是更广泛的搜索,但为了简单起见,我们只处理用户),广告和我们的朋友也可能是在侧边栏中列出。
这些部分是如何从不同应用程序的不同视图和模板构建的?
为了使问题更具体:
- 对于在某个 url 收到的 GET 请求,我们如何将 user-search-form、new-post-form 和 friends-list 一起显示?
如果我们通过一些项目级别的通用视图来做到这一点,那么应用级别的视图呢?
我已经读到该{% include %}
标签对于从几个“子模板”构建模板很方便,但是包含的模板所采用的不同变量呢? - 我们如何处理与用户搜索相关的 GET 请求,以及可能从同一 url 发送的与新帖子相关的 POST 请求?
(“从 url 发送的请求”的表述可能不恰当,但用户可以通过对显示在一个特定 url 的页面进行操作来发送不同的请求。) - 此外,不同的组件应该保持解耦。
注意:这个问题对于 SO 来说可能太笼统了,所以除了详细的答案之外,我还希望得到资源,可能会提供“实际”使用不同应用程序的示例。