gpt4 book ai didi

python - Django 在 View 之间传递数据

转载 作者:IT老高 更新时间:2023-10-28 21:55:03 24 4
gpt4 key购买 nike

我想知道在 View 之间传递数据的“最佳”方式是什么。创建不可见字段并使用 POST 传递它会更好,还是应该在我的 URLS 中对其进行编码?或者有更好/更简单的方法吗?对不起,如果这个问题很愚蠢,我对网络编程很陌生:)

谢谢

最佳答案

在 View 之间传递数据有不同的方式。实际上,这与在两个不同脚本之间传递数据的问题并没有太大区别,当然还有一些进程间通信的概念。想到的一些事情是 -

  1. GET 请求 - 第一个请求命中 view1-> 将数据发送到浏览器 -> 浏览器重定向到 view2
  2. POST 请求 -(如您所建议)与上述相同的流程,但适用于涉及更多数据时
  3. Django session 变量 - 这是最简单的实现
  4. 客户端 cookie - 可以使用,但可以存储的数据量有限制。
  5. 网络服务器级别的共享内存- 很棘手,但可以做到。
  6. REST API's - 如果您可以拥有独立服务器,那么该服务器可以通过 REST API's 调用 View 。
  7. 消息队列 - 同样,如果可以使用独立服务器,甚至消息队列也可以工作。即第一个 View (API)接受请求并将其推送到队列中,其他一些进程可以弹出消息并点击您的第二个 View (另一个 API)。这将解耦第一和第二 View API,并可能更好地管理负载。
  8. 缓存 - 可能是像 memcached 这样的缓存可以充当中介。但是,如果要走这条路,最好使用 Django session ,因为它隐藏了很多实现细节,但如果规模是一个问题,memcached 或 redis是不错的选择。
  9. 持久存储 - 将数据存储在一些持久存储机制中,例如 mysql。这通过在中间放置一个数据库,将您的请求参与(可能是面向客户端的 API)与处理部分分离。
  10. NoSql 存储 - 如果写入速度是每秒数十万的其他顺序,那么 MySql 性能将成为瓶颈(有一些方法可以通过调整 mysql 配置来解决,但这并不容易) .然后考虑 NoSql DB 可能是另一种选择。例如:dynamoDB、Redis、HBase 等。
  11. 流处理 - 如 StormAWS Kinesis如果您的用例是实时计算,则可能是一种选择。事实上你可以使用 AWS Lambda在中间作为无服务器计算模块,它将读取并调用您的第二个 View API。
  12. 将数据写入文件 - 然后下一个 View 可以从该文件中读取(真的很难看)。这可能永远不应该做,但把这一点放在这里是不应该做的事情。

想不起来了。如果我得到任何会更新。希望这会有所帮助。

关于python - Django 在 View 之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7763115/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com