当前位置: 首页 > news >正文

网站建设维护 微信企业培训师资格证报考2022

网站建设维护 微信,企业培训师资格证报考2022,网站推广营销策划方案,做网站获流量数据库指的是以一定方式存储在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。而我们平时所说的数据库实际上是包含了数据库管理系统(DBMS)的,数据库管理系统是为管理数据库而设计的软件系统,它一…

数据库指的是以一定方式存储在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。而我们平时所说的数据库实际上是包含了数据库管理系统(DBMS)的,数据库管理系统是为管理数据库而设计的软件系统,它一般具有查询、存储、截取、安全保障和备份等功能。

16.1 Python数据库应用程序接口

为了使Python语言对数据库访问具有友好的通用界面,增强Python语言使用数据库的可移植性等原因,Python对于关系数据库的访问接口制定了一个标准,即Python Database API Specification v2.0,简称PEP249,其参考资料见https://www.python.org/dev/peps/pep-0249。

操作数据的相关第三方模块需要遵从这一规范,但并不是所有第三方模块都严格遵从的。在遵从这一规范的基础上,第三方模块还可以添加一些特别的或有益于用户使用的功能。API规范中指定了访问数据的两种主要的对象,即连接对象和游标对象。本节介绍这两个对象及其使用方法。

16.1.1 数据库应用程序接口概述

DB-API 2.0连接对象是用来管理数据库连接的对象,它由数据库模块中提供的一个模块级函数connect()返回的对象。而函数connect()的参数会因访问的数据库不同而有所不同,但是通常包含如数据源名称、用户名、密码、主机名、数据库名等基础连接信息。

在这里插入图片描述
在这里插入图片描述

16.1.2 数据库游标的使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意: 数据库编程接口具有共性的一面,即大部分数据库操作都是遵循的,但对于具体的数据库也可能有所不同,你应参考其连接库的相关帮助文档。

16.2 Python操作SQLite3数据库

Python3.x版本的标准库已经内置了sqlite3模块,它就是支持SQLite3数据库的访问和相关数据库操作,要操作SQLite3数据库可以先导入其模块即可。

16.2.1 SQLite3数据库简介

SQLite是一个开源的嵌入式关系数据库,它在2000年由D.RichardHipp发布,它的减少应用程序管理数据的开销,SQLite可移植性好,很容易使用,很小,高效而且可靠。作为嵌入式数据库直接在应用程序进程中运行,提供了零配置(zero-configuration)运行模式,并且资源占用非常少。

SQLite3数据库是将整个数据库(定义、表、索引和数据)都存储在主机端上单一的一个文件中,所以体积很小,一些基本的信息系统都使用它作为基础的数据库。

嵌入式数据库的一大好处就是在你的程序内部不需要网络配置,也不需要管理。因为客户端和服务器在同一进程空间运行。SQLite的数据库权限只依赖于文件系统,没有用户账户的概念。SQLite有数据库级锁定,没有网络服务器。它需要的内存和其他开销很小,适合用于嵌入式设备。你需要做的仅仅是把它正确地编译到你的程序。

程序库实现了多数的SQL-92标准,包括事务,就是代表原子性、一致性、隔离性和持久性(ACID)。触发器和多数的复杂查询,不进行类型检查,你可以把字符串插入到整数列中。例如,某些用户发现这是使数据库更加有用的创新,特别是与无类型的脚本语言一起使用的时候。其他用户认为这是主要的缺点。

多个进程或线程可以同时访问同一个数据而没有问题。可以同时平行读取同一个数据库。但同一时间只能有一个进程或线程进行数据写入;否则会写入失败并得到一个错误消息(或者会自动重试一段时间,而这重试时间的长短是可以设置的)。

在这里插入图片描述

16.2.2 SQLite3数据库操作实例

使用Python标准库的sqlite3包来操作SQLite3数据库,依据DB-API2.0规范,主要有以下几个步骤:

在这里插入图片描述

其中,database就是用字符串的形式指定数据库的名称,如果数据库文件位置不是当前目录,则必须要写出其相对或绝对路径。还可以用“:memory:”表示使用临时放入内存的数据库,而当程序退出时,数据库中的数据也就不存在了。

5.关闭游标对象和数据库连接(close())。

注意:数据库操作之后,应及时调用其close()方法关闭数据库连接,以减轻数据库服务器的压力。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

【代码说明】代码中首先定义了两个用于生成随机字符串作为数据库记录数据的函数,还有两个分别通过遍历cursor、调用cursor的fetchall()方法来获取数据库表中所有记录并输出的函数。然后在主程序中,依次通过建立连接、获取连接的cursor,之后通过cursor的execute()、executemany()等方法来执行SQL语句,以达到插入一条记录、插入多条记录、更新记录和删除记录。最后依次关闭游标和数据库连接。

注意: 使用游标的方法来执行SQL语句时,其语句中的数据采用占位符(?)的方式。为了防止注入式攻击数据库,一般不采用字符串拼接的方式,而是采用参数方式。

【运行效果】如图16.1所示,创建了一张表之后,首先插入一条新记录并显示,其次插入多条记录并显示,最后分别更新和删除了一条记录。你可以对比每个操作执行前后显示的数据库表中的数据来了解操作后的数据或记录的变化。

在这里插入图片描述
注意: 更新数据库后应该调用connect对象的commit()方法来保存更新结果。

16.3 Python操作MariaDB数据库

MariaDB数据库是一种开源的数据库,它是MySQL数据库的一个分支,因为历史原因,有不少用户担心MySQL数据库会闭源,所以MariaDB已经发展成为替代MySQL数据库主要的开源数据库之一。本节介绍的是在Windows下运用MySQL的官方第三方库来操作MariaDB数据库。

16.3.1 MariaDB数据库简介

在这里插入图片描述
除了具有MySQL数据库系统的特点外,还有自身的一些特性:

1.兼容性

MariaDB与MySQL在同一分支保持最新的版本,在大多数方面,MariaDB与MySQL几乎一样。所有的命令、接口、库和APIs存在于MySQL,也存在于MariaDB。切换到MariaDB不需要转换数据库。MariaDB是可以快切换并替代MySQL的。此外,您可以利用MariaDB许多不错的新特性。

2.速度更快
MariaDB增加了很多优化及增强功能,在数据的安全复制、索引、字符集转换等方面具有更好的性能。

3.采用线程池连接查询
用线程池替代了每个连接一个线程,使用查询时对数据的锁定代价降低,在大量的连接下性能有明显提升。

4.安全性
在MySQL的基础上维护自己的一套安全补丁。对于每个MariaDB的发布版本,开发人员将合并所有MySQL的安全补丁,如果有必要,我们还会增强它们。

目前,维基百科、Fedora、Slackware Linux、Red Hat等目前都已经迁移到MariaDB数据库。

16.3.2 建立MariaDB数据库操作环境

MariaDB数据库安装也很简单,你可以下载其安装版本的msi包之后,直接运行安装即可。也可以根据你的计算机操作系统下载其对应版本的压缩包,解压后执行命令安装或在控制台直接应用。本节简单介绍使用64位版本的压缩包解压后在控制台直接启动方法。

首先到以下地址下载压缩包并解压到某目录中(此处以d:\mariadb为例):

在这里插入图片描述
注意: 启动后若Windows系统弹出如图16.3所示的安全警报窗口,请单击“允许访问”,否则无法通过网络访问数据库。

在这里插入图片描述
注意: 用以上控制台方式启动MariaDB数据库后,默认的数据库root用户的密码为空,你可以用以下命令给root用户添加一个新密码:

在这里插入图片描述
注意: 此处安装成功后,数据库服务器并不会自动启动,应使用以下命令启动MariaDB数据库。

在这里插入图片描述

16.3.3 MariaDB数据库操作实例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

16.4 Python操作MongoDB数据库

MongoDB数据库也是一种开源的跨平台的数据库,与SQLite3、MariaDB不同的是:MongoDB是一种noSQL (not only SQL)非关系型数据库,MongoDB数据库的操作方法与它们也是大相径庭的。

16.4.1 MongoDB数据库简介

MongoDB是一种强大、灵活、可扩展的数据存储方式,它扩展了关系型数据库的大量有用功能。它的主要特点有:

MongoDB数据存储没有模式:对于关系型数据库来说,只要建立一个关系,即一张表,那么其中的数据类型基本上就定格了。MongoDB数据存储基本单元是“文档”(相对于关系型数据库中的记录),每个文档的模式可以不同,不仅数据类型可以不同,其结构也不相同。

MongoDB具有很强的易扩展性:它所采用的文档数据模型可以自动在服务器之间分割数据,而且其服务器可以集群以平衡服务器的压力。集群的服务器可以自动切换备份的服务器,还可以自动集成和配置新节点。

MongoDB支持高并发读写:MongoDB可以通过集群来提高读写性能,甚至带可以建立读写分享的集群服务器。

MongoDB支持海量存储:内置GridFS,支持大容量的存储,GridFS是一个出色的分布式文件系统,可以支持海量的数据存储。内置了GridFS了MongoDB,能够满足对大数据集的快速范围查询。

16.4.2 建立MongoDB数据库操作环境

由于MongoDB数据库是一种开源的跨平台的数据库,所以你可以自由下载和使用,其下载地址为:

http://www.mongodb.org/downloads

在这里插入图片描述
在这里插入图片描述
下一节介绍MongoDB数据库基础及用客户端来操作它。

16.4.3 MongoDB数据库基础

与关系型数据库相比,作为非关系型的MongoDB数据库的有关概念是不同的,如图16.9所示。

在这里插入图片描述
对应一般关系型数据的表和记录,在MongoDB中分别叫集合和文档。记录是表中的一行,文档相当于表的“一行”,但它可以有灵活的嵌套结构,比关系型数据库中的一条记录要复杂得多。

在这里插入图片描述
在这里插入图片描述
它们不是同一个文档,但很多情况下键的顺序是无关紧要的,而且有些编程语言如本书介绍的Python也是这样的。

文档中的字符串是区分大小写的,字符串中的字符可以是除了以下情况的所有UTF-8字符:

在这里插入图片描述

要实现对数据库的管理等操作,可以使用上一节所讲的mongo.exe客户端来操作MongoDB,只要直接在命令提示符下运行这个程序,它就会作为客户端默认连接本机的27012(MongoDB默认服务端口),如图16.10所示,启动成功后出现“>”,就是其客户端的提示符。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

MongoDB的操作很简练,在使用数据库和集合前根本不需要先建立,而是当执行了插入数据时会自动建立对应的集合和表。而关系型数据库要使用数据和表时需要先用SQL语句建立。如上操作实例演示,事先并没有建立test数据库,却可以直接用“usetest”命令切换;同样没有先创建集合stu就可以直接使用db.stu.insert()来向stu集合插入文档。

16.4.4 MongoDB数据库操作实例

要用Python操作MongoDB数据库,就需要安装pymongo这个第三方库。你可以从以下任一个网址下载它,因为后一节的测试环境要求2.8版本的pymongo,建议下载安装2.8版本:
在这里插入图片描述
在这里插入图片描述
注意: 以上步骤还是很多的,在实际编程中以上步骤中的2、3、4可以用一句代码即可解决。

其对应的基本代码如下:

from pymongo import MongoClient

在这里插入图片描述
MongoClient()实际是实例化类MongoClient的操作,其基本初始化参数包括:

host 连接的数据库服务器主机;
port 连接的数据库服务器服务端口。

host默认值就是本地主机,port的默认值为MongoDB数据库服务器默认端口27017。所以以下的测试中可以不带参数来实例化类MongoClient。

在这里插入图片描述
注意: insert_one()、insert_many()和find_one()是在3.0版添加的,而在稳定的2.8版只使用insert()和fin()方法。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

16.4.5 用对象关系映射(ORM)工具操作MongoDB数据库

ORM是对象关系映射(Object Relational Mapping,或O/RM)的简称,是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。

从另外一个角度来看,在面向对象编程语言中使用的是对象,而对象中的数据要保存到数据库中,或数据库中的数据用来构造对象。要从数据库中提取数据并构造对象或将对象数据存入数据库,有很多代码是重复的,而且很多功能完全自己实现那就是“重复造轮子”。所以就诞生了ORM,它使得从数据库中提取数据来构造对象或将对象数据保存(持久化)到数据库中实现起来更简单。

通过ORM框架来操作数据只需要通过操作类就可以实现一切功能。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

16.5 小结

本章首先介绍了Python语言的数据库基础——DB-API 2.0中的连接对象和游标对象,然后介绍通过它们来访问或操作内嵌的SQLite3数据库、MariaDB数据库等关系型数据库,并各举出一个包含连接数据库、插入、修改、删除数据库中数据的一个实例,此外还介绍了MariaDB数据环境的建立。最后重点介绍了Python操作非关系型的MongoDB数据库的基本方法,包括建立其数据库服务器测试环境、MongoDB数据库基础知识及客户端程序的使用、用pymongo操纵数据和用ORM框架mongoengine来操纵数据库。通过学习本章你应该掌握Python的基本数据库应用程序接口及其使用方法,并能使用它们连接和操纵数据库中的信息。

在这里插入图片描述

http://www.dinnco.com/news/43333.html

相关文章:

  • 手机网站开发标准网站备案查询工信部
  • 素材网站源码地推公司
  • 新兴街做网站公司2022年今天新闻联播
  • wordpress 网站教程石家庄疫情太严重了
  • wordpress连接数据库错误网站关键字优化价格
  • 网络推广SEO优化网站建设杭州seo排名收费
  • 舟山网站建设百度指数可以查询到哪些内容
  • window主机用wordpress手机优化软件哪个好
  • 武汉工业网站制作重庆seo整站优化方案范文
  • 全国建设工程造价管理系统南宁seo排名收费
  • 汉鼎网站建设直播网站排名
  • 做关于水果的网站海外互联网推广平台
  • 武汉城市建设网网站优化推广seo
  • 网站建设服务协议 百度上海网络公司seo
  • 手机行业动态网站制作深圳网站推广公司
  • 网站免费推广怎么做河南网站建站推广
  • 哈尔滨网站建设那家好专业seo网站
  • 福建有没有网站做鞋子一件代发数据指数
  • 定制网站哪个好网站优化招聘
  • 建站费用明细台州网络推广
  • 将一个网站拉入黑名单怎么做互联网怎么赚钱
  • 做网站不难吧百度seo发包工具
  • 做网站的费用入账微信小程序开发教程
  • 宝鸡做网站电话墨子学院seo
  • 重庆网站公司设计方案谷歌浏览器下载安装2021最新版
  • 长春市做网站哪家好做微商怎么找客源加人
  • 重庆市网站建设济南百度公司
  • wordpress不小心改了网站地址网站代运营多少钱一个月
  • 做外贸怎样上外国网站足球比赛直播2021欧冠决赛
  • 佛山网站建设seo优化seo外链平台