分分钟学会使用Python编写玩具数据库
文章目录
译自 Palash Bauri 的文章:How to write a simple toy database in Python within minutes
文章地址:https://medium.freecodecamp.org/how-to-write-a-simple-toy-database-in-python-within-minutes-51ff49f47f1
MySQL,PostgreSQL,Oracle,Redis 或任何其他你能想到的数据库名称–数据库是人类文明进程中十分重要的部分科技技术。在今日,数据的重要性不言而喻,因此,数据库成了保证数据的安全和稳定性的重要手段。
可以看到数据库也是同等重要的。曾好几次,我希望为了理解,把玩而创造属于我自己的玩具数据库。正如理查德 · 费曼所说:
我无法理解我所不可创造之物
废话不多说,让我们进入正题:Coding!
开始 Coding 吧。。。
我选用 Python (我的最爱 ❤️)来创建这个玩具数据库,命名为 FooBarDB (应该没有更适合的名字了 😉 ),不过你可以随意起个喜欢的名字。
首先引入一些已经在 Python 标准库里的重要库:
|
|
没错,我们只需要这两个库!json
库是因为我们的数据库基于 JSON,os
库是用于处理路径问题。
下面开始定义基本的类库 FoobarDB
,还有一些基本功能,后面会逐一解释。
|
|
我们使用 __init__ 函数定义主类。创建一个 Foobar 数据库只需要传入数据库的位置。在 __init__ 函数中传入 location
参数,并使用用户的家目录替换 ~
和 ~user
。然后,使用 self.location
变量接受 location
参数,并在稍后的函数中使用它。最后,将 self.location
传入 load
函数。
|
|
load
函数接受数据库位置参数,并检查数据库文件是否存在。如果存在,调用 _load()
函数(稍后解释)。否则,在内存中创建空的 JSON 对象。最后,返回 True 表示成功。
|
|
调用 _load()
函数,从存储在 self.location
变量中的数据库位置打开数据库文件,将其转换为 JSON 对象,并载入 self.db
变量。
|
|
最后,显而易见的,函数 dumpdb
从变量 self.db
接受内存中的数据库(实际上为 JSON 对象),并将其保存在数据库文件中。若成功,返回 True,否则,返回 False。
让它更具实用性。。。😉
我们说了一大通,但是一个不能存储和读取的数据库应该没啥用吧,不是吗?😑 那就让我们把这些功能加上吧!😎
|
|
set
函数负责添加数据。因为我们的数据库属于键-值数据库,所以只需要接收 key
和 value
参数即可。
首先,我们尝试将键-值对添加到数据库中并保存。如果进展顺利便返回 True。否则,打印错误信息并返回 False。(我们可不想一发生错误整个程序就崩溃)
|
|
get
是个简单函数,接受 key
参数并从数据库中返回关联的值。否则返回带有错误信息的 False。
|
|
delete
函数用于从数据库中删除键-值对。首先,确保键-值对存在于数据库中,否则返回 False。然后,我们使用 Python 的内置功能 del
来删除键,同时与之关联的值也会自动删除。最后,保存数据库并返回 True。
你也许会想到,万一我创建的数据库规模很大,那么该怎么重置数据库呢?理论上,我们可以用 delete
函数,但是这并不可取且十分费时。⌛ 我们需要一个新函数来完成这项工作。
|
|
resetdb
函数闪亮登场!它很简单:首先,在内存中重新创建一个 JSON 对象,然后,保存它!没了!我们的数据库现在焕然一新。
最后。。。🎉
我们完成啦朋友们!我们创造了自己的玩具数据库!🎉 🎉 事实上,FoobarDB 仅仅只是一个数据库的雏形。它就像一件简陋的DIY:你可以根据自身需要,自由再创作。
完整代码在这里 👉 bauripalash/foobardb
我希望你能享受这个过程。在下方的评论区留下你的建议,意见或是勘误吧!👇
你还可以在这些地方找到我 👉 Facebook, Twitter, Instagram
期待我们能再次相见!