【发布时间】:2013-03-12 21:14:29
【问题描述】:
到目前为止,在我发现的基本 Django 教程和文档中,应用程序被视为项目的一些独立部分。 不过,我还没有找到在复杂项目中同时使用它们的解决方案。
我们可以在某个网址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 请求,我们如何显示
用户搜索表单、新帖子表单和好友列表一起使用?
如果我们通过一些项目级别的公共视图来做到这一点,那么应用级别的视图呢?
我已经读到{% include %}标签对于从几个“子模板”构建模板很方便,但是包含的模板所采用的不同变量呢? - 我们如何处理与用户搜索相关的 GET 请求和可能从同一 URL 发送的与新帖子相关的 POST 请求?
(“从 url 发送的请求”的表述可能不恰当,但用户可以通过对显示在特定 url 的页面进行操作来发送不同的请求。) - 此外,不同的组件应保持解耦。
注意:这个问题对于 SO 来说可能太笼统了,所以除了详细的答案之外,我还希望得到资源,可能还有“实际中”使用不同应用程序的示例。
【问题讨论】:
标签: django django-templates django-views django-apps