对数据库编程的基本理解

时间:2014-07-01 14:10:33

标签: python database django

作为一名新手程序员,我编写的大多数程序都没有保存或加载任何数据,而且通过序列化类并将其保存为原始文本文件或二进制形式来保存的少数程序。

我现在正在使用Django学习Python,我基本上不了解幕后的工作原理。在我编写的所有程序中,我知道如果我有一个类A并且该类包含一个链表数据成员list,则该列表存在于内存中(堆/堆栈)

现在假设我编写了一个非常大的Django应用程序,我有10,000个A个实例,它们究竟是保存在哪里的?我该如何控制它们?我想拥有10,000个实例的列表是不合理的,但是如何管理正在加载到应用程序内存的内容以及直接通过数据库访问的内容?

我希望我很清楚,作为一个新手,我不知道正确的定义,描述我的意思,并使其难以沟通,所以请随时编辑和纠正我。

2 个答案:

答案 0 :(得分:1)

我会转向你要求推荐阅读有关数据存储,数据结构,表格以及 之前使用ORM的内容,例如django提供的内容。

如果我理解正确,你不是指内存管理,而是数据的持久性。如何将数据存储在当今的商业应用中?主要是在数据库中。

你可以找到关于这个问题的数百个教程,并且基于Django支持的关系数据库建模系统,我将从学习关系数据库开始。

我发现this article非常“直截了当”

如果您不理解这些概念,请随时提出任何问题。一旦掌握了数据库的工作方式,您就会明白Django的作用以及模型如何随着时间的推移而持续存在。

答案 1 :(得分:0)

似乎您的问题是针对内存管理的,例如访问保存对象的实际内存空间。通常这是可以避免的,因为python应该为您处理这一切,并且作为程序员需要操作存储对象的实际内存空间并不重要。见Accessing object memory address

Django支持使用各种数据库,如SQLite,MySQL和PostgreSQL;所有这些都有不同的后端操作。

如果您还没有这样做,可能值得花时间浏览关于数据库的Django文档:https://docs.djangoproject.com/en/dev/ref/databases/