我可以在Flask应用程序中使用python3类吗?

我可以在Flask应用程序中使用python3类吗?,python,python-3.x,flask,Python,Python 3.x,Flask,我正在设计一个Flask应用程序,它可以绘制几个城市的一些天气数据。对我来说,使用一个“City”类来处理每次加载页面时的数据获取和解析是有意义的。然而,我不确定的是Flask将如何处理这些实例。Flask是否足够聪明,能够在页面提供后释放这些实例的内存?还是会逐渐消耗越来越多的内存 或者,我是否能够为“@app.route”函数之外的每个城市创建一个全局类实例,以便在请求页面时使用 部署服务器将是使用FastCGI的Windows IIS,以防万一。Flask“只是”一个框架。它仍然由“普通”

我正在设计一个Flask应用程序,它可以绘制几个城市的一些天气数据。对我来说,使用一个“City”类来处理每次加载页面时的数据获取和解析是有意义的。然而,我不确定的是Flask将如何处理这些实例。Flask是否足够聪明,能够在页面提供后释放这些实例的内存?还是会逐渐消耗越来越多的内存

或者,我是否能够为“@app.route”函数之外的每个城市创建一个全局类实例,以便在请求页面时使用

部署服务器将是使用FastCGI的Windows IIS,以防万一。Flask“只是”一个框架。它仍然由“普通”Python解释器执行和管理,因此“Flask将如何处理这些实例”的问题不存在

像在任何其他Python项目/代码段中一样定义类并使用它们的实例,但是考虑在何处定义它们可能是有益的


这在路由中没有意义,因为每次收到请求时都会重新定义类,但方式完全相同。

我不太明白这与flask有什么关系,flask不处理内存管理,这一切都是由python运行时处理的,在您的例子中可能是CPython运行时。python处理用户定义类的实例的方式与处理所有其他对象的方式完全相同,并且所有对象都是对象,因此您可能会问,“我可以在我的flask应用程序中使用对象吗?”我在下面的评论中作了进一步解释。但基本上,我的经验是脚本,而不是应用程序,所以我很好奇在应用程序重新启动之前内存不会释放的情况下,如何在框架内处理类。我知道如何设置类,并且可以在Flask框架中进行设置。所以我想我最大的问题是,我应该吗?如果是的话,什么是避免内存泄漏的最佳实践。同样,你本质上是在问你是否应该在你的程序中使用对象。在Python中,这基本上是无法避免的,因为一切都是一个对象——所以
int
str
list
等等。。。在这方面,用户定义的类没有什么特别之处。现在,如果你的问题是如何避免一般的内存泄漏,那么如果你给出一些你正在做的事情的例子,可能会有所帮助。如果不再引用Python对象,它们将被垃圾收集。事实上,创建全局对象是保证它们不会被回收的事情之一。我想我问这个问题的真正原因是因为我习惯于定义python脚本,而不是应用程序。因此,当脚本结束时,所有内存都被释放。在我看来,在应用程序中,程序总是在运行,因此所有这些实例都可以继续装载,直到应用程序重新启动。@WillBlanton如果您在路由中创建实例,那么在处理请求结束时它将被删除(只要您不在任何地方保留对它的引用)