为什么需要使用Flask扩展,而不仅仅是裸库?

时间:2016-07-02 11:08:14

标签: python flask

有人可以解释为什么你应该使用烧瓶扩展而不是裸库吗?

例如,如果你想使用Flask的mongoDB(或其他),你似乎需要这样做:

from flask.ext.pymongo import PyMongo
mongo = PyMongo(app)

并在整个应用程序中使用此实例。

但是,显然,使用“普通”pymongo更简单:

from pymongo import MongoClient
mongo = MongoClient()

我想知道扩展的特别之处。

2 个答案:

答案 0 :(得分:3)

  

我想知道扩展的特别之处。

PyMongo扩展允许您使用与Flask其余部分相同的配置机制来配置Mongo连接,请参阅PyMongo文档中的Configuration section支持的内容。

在编写Mongo支持的Flask应用程序时,该库还提供了一些您可能会发现有用的convenience functions

没有要求使用扩展名;如果您觉得直接使用MongoClient更容易,那么就这样做。

这适用于大多数扩展程序;他们将提供与Flask生态系统的某种程度的集成。您需要确定每个需要多少才能使用该集成,以及您需要多少重新发明轮子。像任何图书馆一样。

答案 1 :(得分:1)

使用pymongo库而不是flask-mongoengine扩展,您可以完全访问所有数据库连接方法以及其他可能在某种程度上有用的实用程序。

相反,通过使用flask-mongoengine扩展,你将在pymongo库周围有一个简化的“包装器”,它更安全,更友好。