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

网站升级建设中做游戏陪玩网站

网站升级建设中,做游戏陪玩网站,开源cms建站系统,深圳网页制作与网站建设地址数据库指的是以一定方式存储在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。而我们平时所说的数据库实际上是包含了数据库管理系统#xff08;DBMS#xff09;的#xff0c;数据库管理系统是为管理数据库而设计的软件系统#xff0c;它一…数据库指的是以一定方式存储在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。而我们平时所说的数据库实际上是包含了数据库管理系统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只要直接在命令提示符下运行这个程序它就会作为客户端默认连接本机的27012MongoDB默认服务端口如图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.yayakq.cn/news/6260/

相关文章:

  • 专业的网站建设服务交易平台哈尔滨网络公司案例
  • 网站后台购买网上政务服务平台入口
  • 子网站 两微一端的建设方案中国机房建设公司排名
  • 网站二级目录是什么建设银行手机外汇网站
  • 学院招生网站建设方案微信小程序开发图解案例教程
  • 注册网站如何备案赣州网络公司排名
  • vs网站制作教程苏州 中英文网站建设
  • 如何把网站放到空间别人可以访问wordpress建站安全吗
  • 东莞品牌网站建设去哪个网站有客户找做标书的
  • 网站商城具有哪些功能模块温州外经贸局网站
  • 如何修改网站后台的用户名和密码个人博客网站的建设结构图
  • 做亚克力在那个网站上好wordpress回帖可见
  • 河源今天发生的重大新闻哈西建站优化
  • 四川阿坝建设招标网站菲律宾网站网站建设
  • 网站建设报价分析危险网站解除
  • 彩票做网站网站如何做好内链
  • 网站建设亇金手指下拉排名亅怎样自创广告网站
  • 网站建设售后服务承诺书做网站竞争者的优势
  • 源码出售网站触屏手机网站设计
  • 新开传奇网站发布站三端互通企业网站设计优化公司
  • 哪里有可以做空比特币的网站福田欧曼货车
  • 哪个行业该做网站但是没有做云捷配快速开发平台
  • 宁夏建设职业技术学院官方网站用KEGG网站做KEGG富集分析
  • 海洋公园网站建设方案wordpress数据库信息文件
  • 易科技 建设网站兴义建设局网站
  • 吉林网站建设方案目前上海有几个区
  • 烟台学校网站建设网页设计图片紧挨着
  • 罗湖网站建设价格贵州建设厅文件网站首页
  • 网站建设方案pptwordpress淘宝客模板修改
  • 佛山手机网站设计制作企业管理系统oa