小白对于数据库的初步理解

dragonbean dragonbean     2022-12-16     499

关键词:

电脑是几年前的电脑了,用起来不流畅,自己开发一个网站,涉及到数据库,一是不了解数据库,二是也不太想现在学,三就是电脑装上可能又卡了,于是就用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~

希望你看完这些,能对数据库有一个较好的理解。

ioc初步理解简单实用autofac搭建mvc三层+automapper=》ioc(codefirst)

...的人看这种文章没有什么问题,但是对于完全没有基础的小白来看完全是灾难级别的(我就是),经常按着博文一点一点的写,突然发现少了一部分导致代码无法运行。在搜索各种文章之后,终于 查看详情

js数据类型的初步理解

1、js中的类型字符串、数字、布尔、数组、对象、Null、Undefined①基本数据类型null、undefined、boolean、number、stringconsole.log(typeof1);//numberconsole.log(typeof"a");//stringconsole.log(typeofnull);//objectconsole.log(typeofundefined 查看详情

blockline的初步理解

对于区块链技术的初步理解,源自于微信的一篇文章http://mp.weixin.qq.com/s?biz=MjM5NTU2MTQwNA==&mid=2650656048&idx=1&sn=1e52f86553e8bc05f9dc8e8e726ee2c1&chksm=beffc7e389884ef5ad4919342568348f0ae61e2d7ceeefb049c 查看详情

动态规划初步

...动态规划。正文:    对于动态规划完全是小白的,可以看看http: 查看详情

3d,小白需要理解的点云概念

对于初入点云世界的小白,首先来个灵魂三拷问:什么是点云?点云从哪儿来滴撒?点云在实际生活中用在哪儿嘞?whatis点云?先看下维基百科的定义:Apointcloudisasetofdatapointsinspace.Thepointsmayrepresenta3Dshapeorobject.Eachpointpositionhasitss... 查看详情

数据结构导论初步理解

   如今已经来到了大数据的时代,所以我们对数据的了解要更加的深刻。才可以更加理解数据这个词所代表的含义。   watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Cen 查看详情

kpm算法初步理解

...”?  上面这道题目是一个经典的字符串匹配的题目,对于字符串匹配,比较好的算法里很容易想到KPM算法,那KPM算法是干什么的?为什么说KPM比较优秀?   给定一个字符串O和F,长度分别是m、n,判断F是否在O中出... 查看详情

对nio的初步理解

...NIO之前,首先了解BIO。BIO是阻塞IO,是面向流的。对于面向流的理解, 查看详情

jvm初步理解(代码片段)

1、什么是运行时数据区?1、什么是运行时数据区? javac指令:编译java文件生成class文件? java指令:运行class文件即将数据放到jvm中? class文件运行,后将不同的数据放到jvm中不同的位置这就是运行时数据区的由来。2、运行时数... 查看详情

ajax的初步理解

AJAX全称为“AsynchronousJavaScriptandXML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术。它使用:使用XHTML+CSS来标准化呈现;使用XML和XSLT进行数据交换及相关操作;使用XMLHttpRequest对象与Web服务器进行异步... 查看详情

数据系统初步设计

...长(1)数据架构  1,数据来源:爬虫、机构内各系统数据库、文件文本等其他形式  2,数据融合:基于在对于各个系统数据了解的情况下的数据关联方法  3,数据同步策略:实时同步,T+N同步,增量同步,全量同步 ... 查看详情

小白,beautifulsoup初步整理,后续添加

formbs4importBeautifulSoup要导入bs4模块注意BeautifulSoup大小写soup=BeautifulSoup(‘html‘,‘html.parser‘)第一个参数html为要解析的html文档,html是字符串解析到soup中后才可以开始使用soup中用的比较多的方法为find_all()用法有:soup.find_all(‘a‘... 查看详情

初步学习hashtable(哈希表或者散列链表)

...我谈谈自己对哈希表的一些理解,可能有误,还望指正。对于哈希表,存放的数据是键值对<key,value>。是按照键值来索引的,键key可以是字符串、单个字符、整形数等,值value就是存放结点数据。通俗的说,对于哈希表,使... 查看详情

三层架构初步理解

---恢复内容开始---什么是三层架构:通常意义上的三层架构就是显示层(UI),业务逻辑层(BLL),数据访问层(DAL)。UI:显示层,用来采集用户用户输入输入的信息和操作,并向用户展现特定的业务数据,在UI层中常用的技术... 查看详情

mybatis框架学习笔记---[缓存初步理解](代码片段)

...的话,CPU要读取数据,直接在内存上读取缓存即可;暂时减轻数据库的压力;但是有的数据还是必须要去硬盘直接读取的,比如说要读取的这部分数据变动比较快;缓存的数据还保留着之前的数据 查看详情

初步理解react(代码片段)

1.组件化在MV*架构出现之前,组件主要分为两种:狭义上的组件,又称为UI组件,比如Tabs组件、Dropdown组件。组件主要围绕在交互 动作上的抽象,针对这些交互动作,利用JavaScript操作DOM结构或style样式来控制。广义上的组件... 查看详情

关于go中并行的初步理解

一些概念的介绍:概念描述进程在内存中的程序。有自己独立的独占的虚拟CPU、虚拟的Memory、虚拟的IOdevices。(1)每一进程占用独立的地址空间。此处的地址空间包括代码、数据及其他资源。(2)进程间的通信开销较大且受到许多限... 查看详情

数据库读写分离的初步理解

传统的应用通常会将业务的表放在同一个数据库,所有的学些操作连接的都是一个数据库,在信息爆炸的今天,很多业务模块的信息数据会非常大,此时将所有的操作都放在一个数据库上不能满足性能需求,因为一台服务器其IO... 查看详情