繁体   English   中英

将客户端和数据库连接放在python文件中的位置

Where to put client and db connection in python file

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

因此,我正在构建一个mongo数据库类,该类将提供对将文档插入到插入服务的访问,并提供对通过查询服务查看文档的访问。 现在,我的database.py类具有以下内容:

import pymongo 

client = pymongo.MongoClient('mongodb://localhost:27017/')
db_connection = client['my_database']

class DB_Object(object):

    """ A class providing structure and access to the Database """

    def add_document(self, json_obj):
        coll = db_connection["some collection"]
        document = {
            "name" : "imma name",
            "raw value" : 777,
            "converted value" : 333
        }
        coll.insert(document)

    def query_response(self, query):
            """query logic here"""

如果我想要并发查询和具有多个服务调用的此类的插入,则这是各行的正确位置:

client = pymongo.MongoClient('mongodb://localhost:27017/')
db_connection = client['my_database']

这是提供访问权限的标准方法吗?

1 个回复

您的代码是正确的。 您应继续对应用程序中的所有操作使用相同的MongoClient实例,这将确保所有操作共享相同的连接池并使用尽可能少的连接-这将最大程度地提高效率。 MongoClient是线程安全的,因此即使您在多个线程上进行并发操作,它也可以正常工作。

2 在Android应用程序中将数据库连接放在何处

我在哪里/如何在我的Android应用程序中集成数据库连接时遇到了一些麻烦。 在尝试了几种不同的方式之后,我决定扩展应用程序类并将其放入其中。 据我了解,尽管我需要它是静态的,所以我可以从任何地方访问它,而且我正在使用GreenDAO,这需要Application上下文才能起作用。 现 ...

3 Flutter-在哪里放置自己的SQLite .db文件?

我有一个要通过Flutter上的sqflite访问的SQLite .db文件。 我应该在Flutter项目中的哪个位置放置它,以便可以在Android和iOS上访问它? 我如何确保它与apk一起发货? 我发现的所有示例均假定需要在首次启动时从头开始创建数据库。 ...

4 在 Python 中将配置文件放在哪里?

在开发模式下,我有以下目录树: 我使用ConfigParser来解析myproject.conf文件。 在我的代码中,很容易用一个好的路径加载文件: my_project/conf/myproject.conf 问题是:当我使用 setup.py 安装我的项目时,配置文件位于/etc/my_ ...

7 如何将我的数据库连接放在.war文件之外?

我有一个运行在Apache Tomcat 7上的Java Web应用程序,有时在数据库中进行以下连接: DBConnection是我制作的一个类,其中包含有关DB的一些代码,没什么特别的(它具有JDBC驱动程序和所有驱动程序)。 我们在这里看到的是从Java到SQLServer DB的 ...

8 在哪里将file.close()放入python循环中

我正在尝试制作一个简单的程序,该程序应该在文本文件中搜索单词“为什么”并打印出现的次数。 这是代码: 但是我应该把file.close()放在file.close() ? 我需要将它放在main()的for循环中还是可以将其放在代码的末尾? ...

2013-07-15 02:41:46 2 113   python
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM