栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Django在视图之间传递数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django在视图之间传递数据

在视图之间传递数据有多种方法。实际上,这与在两个不同的脚本之间传递数据的问题并没有什么大的不同,当然还引入了一些进程间通信的概念。我想到的一些事情是-

  1. GET请求 -第一个请求命中view1->将数据发送到浏览器->浏览器重定向到view2
  2. POST请求 -(根据你的建议)与上述流程相同,但适用于涉及更多数据的情况
  3. Django会话变量 -这是最简单的实现
  4. 客户端cookie-可以使用,但存储的数据量有限。
  5. Web服务器级别的共享内存 -棘手,但可以完成。
  6. REST API-如果你可以拥有独立服务器,则该服务器可以使用REST API来调用视图。
  7. 消息队列 -同样,如果可以使用独立服务器,甚至消息队列也可以工作。也就是说,第一个视图(API)接收请求并将其推送到队列中,其他一些进程可能会弹出消息并点击你的第二个视图(另一个API)。这将解耦第一视图API和第二视图API,并可能更好地管理负载。
  8. 缓存 -也许像memcached这样的缓存可以充当中介者。但是,如果采用这种方式,最好使用Django会话,因为它隐藏了很多实现细节,但是如果要考虑扩展性,则最好使用内存缓存或Redis。
  9. 持久存储 -将数据存储在某些持久存储机制(如mysql)中。通过在中间放置一个数据库,可以使你的参与请求(可能是面向客户的API)与处理请求分离。
  10. NoSql存储 -如果写入速度以每秒数十万的其他顺序进行,则MySql的性能将成为瓶颈(有一些方法可以通过调整mysql配置来解决,但这并不容易)。然后考虑使用NoSql DB作为替代方案。例如:dynamoDB,Redis,Hbase等。
  11. 如果你的用例是实时计算,则可以选择诸如Storm或AWS Kinesis之类的流处理。实际上,你可以在中间使用AWS Lambda作为无服务器计算模块,该模块将读取并调用你的第二个视图API


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/387848.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号