当前位置: 首页 > 面试题库 >

仅使用Django的DB部分

陶原
2023-03-14
问题内容

有人知道Django有多“模块化”吗?我是否可以仅使用ORM部分来获取映射到数据库表的类并知道如何从这些表中进行读取/写入?

如果没有,您会推荐什么作为“相当于Hibernate的Python”?


问题答案:

如果你喜欢Django的ORM,则“独立”使用它非常简单;我已经写了几种在Web上下文之外使用Django部分的技术,你可以自由使用其中的任何一种(或滚动使用)。

上面的Shane似乎在这方面和其他几点上有误解-例如,Django 可以处理多个不同的数据库,只是没有默认设置(你需要在使用其他模型的模型上做一个自定义管理器比“主”数据库要难一些,并且有一些配方可供选择)。的确,Django本身并没有进行连接管理/连接池,但是我个人总是为此使用外部工具(例如pgpool,,它比ORM内置的任何工具都更难动)。

我建议花一些时间阅读并尝试一些可能的Google搜索(例如,我链接到你的帖子是“独立Django脚本”的最佳搜索结果),以使你真正体会到最适合你的内容需求和品味-可能是Django的ORM不适合你,如果不合适,则不应该使用它,但不幸的是,那里存在很多误导信息,使你感到困惑。

编辑以响应Shane:

再次,你似乎被误解了:在运行SQLAlchemy之前,需要对其进行配置(例如,告诉要使用的数据库,如何连接等),因此Django需要类似的配置(通过你选择的方法-你不需要完整的Django设置文件)有什么缺点吗?

至于多数据库支持,你似乎很困惑:支持程度很低。查询对象不是- QuerySet,而是Query将执行的基础对象知道其连接的数据库,并接受数据库连接作为其初始化参数之一。告诉一个模型使用一个数据库,而另一个模型使用另一个数据库,就像在管理器上设置一个方法一样,该方法将正确的连接信息向下传递到数据库中Query。的确,没有为此提供更高级别的API,但这与“不支持”和“要求自定义代码”不同(除非你争辩说,在SQLAlchemy中显式配置多个DB,如果你想要多个,则必须这样做)。 DB,也是“自定义代码”)。

至于你是否最终间接使用了in中没有的东西,那又django.db如何呢?就我个人而言,django.db导入django.utils诸如某些数据结构位和其他代码位不仅对ORM有用的事实,这很好。如果某些东西具有外部依赖性或使用标准的Python库而不是100%独立的,人们可能会抱怨。



 类似资料:
  • 问题内容: 我喜欢Django,但对于特定的应用程序,我只想使用其中的一部分,但是我对Django在内部的工作方式还不够熟悉,因此也许有人可以为我指明正确的方向查看。 具体来说,我想使用: 模型和数据库抽象 该缓存API,但我想通过缓存来避免数据库查询,而不是HTML生成,并且由于在Django的缓存框架适用于后者,我不 知道是否还没有这真的合适。 我不会使用: Templating urlcon

  • 问题内容: 我最初的问题是如何为Django登录页面启用HTTPS,唯一的回应是建议我- 将整个站点设置为仅HTTPS。 鉴于我正在使用Django 1.3和nginx,将网站设为仅HTTPS的正确方法是什么? 一个回应提到了一个中间件解决方案,但有一个警告: Django在维护POST数据时无法执行SSL重定向。请整理你的视图,以便仅在GET期间进行重定向。 关于服务器故障的有关nginx重写为

  • 问题内容: 我想使用mongoengine db在Django项目中处理身份验证。 我尝试了一些有关此问题的示例,这些问题已在旧问题中得到解答,但并未运行。我正在使用Django 1.6和mongoengine。一切都已安装,运行,并且我可以创建文档并将其保存到Mongoengine DB。 我正在追踪http://mongoengine- odm.readthedocs.org/en/lates

  • 我使用Django 3.08和PostgreSQL 12远程服务器。我已经搜索了Postgres和Django的文档,但是找不到关于Django如何/是否加密我的应用程序和数据库之间的流量的讨论。 在我看来,根据PostgreSQL中的设置,PostgreSQL中默认情况下使用md5加密对流量进行加密,并通过端口5432通过tcp发送流量。我的理解是,md5不再足以加密。然而,PostgreSQL

  • 我有一个关于DO的小插曲,其中有一个MONGODB实例。我可以通过“ssh”连接user@ip命令,但如果我想将其与Meteor(本地)连接,我需要使用“ssh-L port:localhost:portserver”进行端口转发user@ip-f-N“并使用带有端口的launch Meteor。要访问MONGODB,我删除了密码,因此您只能使用ssh进行访问,并按照DO指南上的建议启用了防火墙。

  • 问题内容: 我们将部署一个新的Django网站,并希望使用Google Analytics(分析)来跟踪该网站上的访问量。但是,我们不希望开发实例的所有匹配都有助于Google Analytics(分析)统计数据。 有几种方法可以解决此问题: 在settings.py中有一个配置选项,基本模板可用来决定是否包括适当的元素, 维护一个分支,在部署到生产服务器之前,我们会进入该分支,我们确保其中包括以