基于延拓的python web应用框架设计

基于延拓的python web应用框架设计,python,architecture,frameworks,python-stackless,Python,Architecture,Frameworks,Python Stackless,有许多基于延续的java、ruby等框架,但python中没有。Nagare框架在某种程度上解决了这个问题,但它不使用标准python,而是使用无堆栈python来解决延续问题 我在想 标准python约束的哪一部分可以在标准python中创建这样的延续web框架 有什么解决办法?什么是延续框架体系结构中的标准部分(如MVC中的模型视图控制器)?,在你甚至可以开始考虑编写一个基于延续的框架时,你需要一个具有连续性的编程语言(或者至少是可以用来模拟连续性的共同例程)。延续是一种类似循环、闭包或函数

有许多基于延续的java、ruby等框架,但python中没有。Nagare框架在某种程度上解决了这个问题,但它不使用标准python,而是使用无堆栈python来解决延续问题

我在想

标准python约束的哪一部分可以在标准python中创建这样的延续web框架


有什么解决办法?什么是延续框架体系结构中的标准部分(如MVC中的模型视图控制器)?

,在你甚至可以开始考虑编写一个基于延续的框架时,你需要一个具有连续性的编程语言(或者至少是可以用来模拟连续性的共同例程)。延续是一种类似循环、闭包或函数的控制结构,而不是类似MVC的设计模式。不幸的是,(当前)标准Python不支持continuations。这也是人们开发无堆栈python的原因之一


Java有点特殊。语言本身不支持continuations,但虚拟机支持continuations(为了支持异常)。我认为他们所做的是在运行时修改编译后的字节码,并对指令重新排序,使其看起来像是支持延续。类似于通过猴子修补实现无堆栈Python。

在你甚至可以开始考虑编写基于延续的框架之前,你需要一个有连续性的编程语言(或者至少是可以用来模拟连续性的共同例程)。延续是一种类似循环、闭包或函数的控制结构,而不是类似MVC的设计模式。不幸的是,(当前)标准Python不支持continuations。这也是人们开发无堆栈python的原因之一


Java有点特殊。语言本身不支持continuations,但虚拟机支持continuations(为了支持异常)。我认为他们所做的是在运行时修改编译后的字节码,并对指令重新排序,使其看起来像是支持延续。有点像通过猴子补丁实现无堆栈python。

对,continuation是一种语言的属性,而CPython不幸没有continuations

纯Python中的变通方法是众所周知的:例如使用Twisted和Tornado之类的回调/延迟器,或者在任何地方都使用“yield”来模拟协同例程,比如Diesel。但这两种方法都迫使您改变设计和编写应用程序的方式。此外,还可以“重播”延续,这就是基于延续的框架自动处理“后退”按钮问题的方式


最后,确切地说,在Nagare中,我们使用冻结的tasklet的酸洗来获得continuation对象。

对,continuation是一种语言的属性,很遗憾,CPython没有continuations

纯Python中的变通方法是众所周知的:例如使用Twisted和Tornado之类的回调/延迟器,或者在任何地方都使用“yield”来模拟协同例程,比如Diesel。但这两种方法都迫使您改变设计和编写应用程序的方式。此外,还可以“重播”延续,这就是基于延续的框架自动处理“后退”按钮问题的方式


最后,确切地说,在Nagare中,我们使用冻结的tasklet的酸洗来获得延续对象。

Cpython确实支持协同路由。您知道任何“无堆栈java”项目吗?我以前从没听说过,不是Java黑客。对不起,我在谷歌上搜索了一下(这是我上次做的),发现Java的延续框架使用标准的Java解释器,但是一个特殊的编译器Python确实支持协同程序。你知道任何“无堆栈Java”项目吗?我以前从没听说过,不是Java黑客。对不起,我在谷歌上搜索了一下(这是我上次做的),发现Java的延续框架使用标准的Java解释器,但一个特殊的编译器Gare给我留下了深刻的印象,但我想在google app engine上使用它,你或Nagar的作者正在使用app engine吗?我可以帮助测试部分…Nagar给我留下了非常深刻的印象,但我想在google app engine上使用它,您或Nagar的作者是否正在使用app engine?我可以帮助测试部分。。。