flask 特色:上下文机制,在 django 中有吗?或者说 django 有类似的处理方式吗?

2018-01-09 09:13:14 +08:00
 miniyao
flask 的特色:上下文( application context 和 request context ),django 有类似的实现方式吗? 还是 django 根本用不到这个所谓的上下文方式?
3262 次点击
所在节点    Python
10 条回复
xiadd
2018-01-09 09:20:29 +08:00
都不懂... 不过或许你说的是中间件?
JerryZhang
2018-01-09 09:22:04 +08:00
没用过 flask,context 实现了什么功能?
heww
2018-01-09 09:27:36 +08:00
我司以前用过 django 的 global request。
ml071987
2018-01-09 09:28:04 +08:00
with...as... 自动也可以实现上下文
qs
2018-01-09 09:46:55 +08:00
应该是指 flask 里 request 对象的实现吧 不像 django 需要在视图函数里指定一个 request 的参数, 直接就能在函数体里使用 request 对象
miniyao
2018-01-09 09:53:47 +08:00
@JerryZhang 应用上下文和请求上下文

@heww g 在 flask 里单独有

@qs request 是请求上下文。flask 还有一个应用上下文,一般配合消息队列,或 redis 使用的
yylucifer
2018-01-09 10:11:32 +08:00
玩了好几个框架,应该是没有的。

Flask 这个上下文是通过 ThreadLocal 实现的

Django 应该目前应该是没有流行得类似机制的

其实这也没啥,就是 ThreadId ( routineId )— argument 的绑定

自己想的话用 Storage Platform 也可以实现出来
neoblackcap
2018-01-09 11:03:25 +08:00
@qs 所以 request 也不用导入吗?我是 from flask import request 之后才能用啊,我还以为是一个类似 proxy 一样的东西。试过直接在视图函数里面用 request 会报错,是用法不对?
Hstar
2018-01-09 11:54:14 +08:00
request 就是每个 view 的那个参数,current_app 应该没有,但我用 flask 也完全没用过这东西。

什么情况下使用消息队列和 redis 需要 current_app ?
Mark24
2018-01-09 13:49:44 +08:00
request,g 那个是 Flask 的特别之处

高效简洁优雅

用了一个栈的数据结构,巧妙的简化了问题。

Django 是每个 view 处理参数,接收一个 request,会存在大量的样板代码。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/421239

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX