小白对于数据库的初步理解
电脑是几年前的电脑了,用起来不流畅,自己开发一个网站,涉及到数据库,一是不了解数据库,二是也不太想现在学,三就是电脑装上可能又卡了,于是就用txt文档当个简易的"数据库"了。
想开发一个类似于博客的收藏夹个人主页(学习开发总是从没有意义的事情开始的),其中读取收藏页面的功能就需要涉及到数据,我把每个收藏夹的URL统一存放在一个txt文档中,用Python读取这里面的信息依据模板自动生成html文件,可以说这也算是一个框架?
下面就来说说这个"框架":
将网页开发分成两个过程
第一个过程是设计静态html模板,也就是说先写好一个html文件,把其中需要用数据库的代码段划分出来(比如在其前后加上一个特殊的字符串:qweasdzxc),这样写出来的html文档就可以作为一个模板提供给后面的步骤;
第二个过程是用Python写上一个过程划分出来的未完成的代码部分,Python先读取刚刚到html模板,将我们设计的那一串特殊字符串qweasdzxc作为split函数的参数,将文本分成三个部分,我们只要用Python写第二个部分就好了,其余都不做改变,然后新生成一个newhtml,这时newhtml就是我们最终的页面了(含数据的页面)。
这个"框架"先写模板,然后复制模板添加数据,最终生成页面。下面我们说一说添加数据的这个过程。
用Python添加数据,其实无非就是将数据库的内容存成变量,用file.write()写入html源码罢了,没什么技术含量。
但是真正实践的过程中,你会发现,这个过程远比你想象的有意义多了,它能使你更好的理解数据库是什么以及数据库的结构。
version1:
用txt做数据库文件,之所以用txt是因为txt很小,可以随手打开并添加内容,速度很快,效率很高(比起用Excel做数据库文件快多了)
txt文档的内容是一块的,要想让程序很好的读取显然不能直接使用txt,我们需要对txt的内容进行装饰一下(说白了就是加上一些特殊字符串让txt能像Excel那样可以分块的被程序读取,这种方法在写模板html时用过)。比如说txt内容分了三大块,那三大块之间可以用qweqwe这个字符串分开,而每一个大块之间又分有三个中块,那就可以用asdasd将他们分开,以此类推我们可以用zxczxc将小块分开,让txt文档有层次结构,Python可以用split只读取每一块的数据,而不是整个txt的一大坨内容。
txt数据库文件就写好了,美哉美哉~
version2:
你可能会觉得txt很low!但这并不是我写version2的动机,真正的原因是,上面的txt数据库功能太局限了,就只有一个分割功能,当我想对数据进行更多的操作的时候,我发现我根本做不了(比如我想按网站去划分收藏夹而不是我事先定义好的栏目名称),这并不是txt本身的问题,而是我是数据太少了,就只有一个URL,没有更多的数据支持我将这些URL分门别类。
可能你会说那在写txt时加上这些数据不就好了,那我是不是就要用更多的特殊字符串进行分隔?一旦一条数据的特征多了(像URL网站是这一条URL的一个特征,创建日期也是它的一个特征),那需要的特殊字符串就会很多,对整个开发过程来说无疑增加了复杂度(那么多特殊字符串看着我都烦!写程序的时候我还要理解谁对应的谁,头大啊)
那用Excel就显得势在必行了,但是正如前面所说,windows打开Excel有时间延迟的,而且Excel占用电脑内存不小呢,显然就做不到我们想要的随时都能手记。是的,统统这些都是不利,所以我们想到了Python的xlrd库和xlwt库,没错,我们可以写一个程序专门来对接Excel文件,作为数据的输入中介,我们不需要打开Excel,只用在这个程序上输入URL和它的特征,程序会将这些东西自己追加在Excel数据库中去,是不是方便了许多许多,dei,nice呦~
version3:
尽管version2是那么的"完美",但它的弊端还是很明显的,那就是Excel能为我们提供的排序之类的数据操作功能,version2显然不能完成?(我还不知道有没有这种方法)
所以大家可以去用真正的大家都在用的数据库软件了!over~
希望你看完这些,能对数据库有一个较好的理解。