Excel中怎样计算面积? Excel制作计算圆面积工具的教程-英雄云拓展知识分享
130
2023-11-13
【摘要】 本书摘自《Python网络爬虫 从入门到精通》一书中第3章,第5节,吕云翔、张扬和韩延刚等编著。
3.5 使用数据库
在 Python 中使用数据库(主要是关系型数据库)是一件非常方便的事情,因为一般都 能找到对应的经过包装的 API 库,这些库的存在极大地提高了开发者编写程序的效率。 一般而言,只需编写 SQL 语句并通过相应的模块执行就可以完成数据库读写了。
3.5.1 使用 MySQL
一般而言,在 Python 中进行数据库操作需要通过特定的程序模块 (API) 来实现。其基 本逻辑是,首先导入接口模块,然后通过设置数据库名、用户、密码等信息来连接数据库, 接着执行数据库操作(可以通过直接执行 SQL 语句等方式),最后关闭与数据库的连接。由 于 MySQL 是比较简单且常用的轻量型数据库,这里就先使用 pymysql 模块来介绍在 Python 中如何使用MySQL。
【提示】 pymysql 是 在 Python 3.x 版 本 中 用 于 连 接 MySQL 服务器的 一 个库,在 Python 2.x 版本中使用的是 mysqldb 。pymysql 是基于 Python 开发的 MySQL 驱动接口,在 Python 3.x 中非常常用,
首先确保在本地计算机上已经成功开启了 MySQL 服务(还未安装 MySQL 的话需要先 进行安装,可在 htps://dev.mysql.com/downloads/installer/ 下载 MySQL 官方安装程序),之后 使用 “pip install pymysql” 来安装 pymysql 模块。上面的准备完成后,创建一个名为 “DB”
的数据库和一个名为“scraper1”的用户,密码设为“password”:
CREATE DATABASE DB;
GRANT ALL PRIVILEGES ON *.'DB'TO'scraper1'@'localhost'IDENTIFIED BY 'password';
接着,创建一个名为 “users” 的表:
USE DB:
CREATE TABLE'users`(
`id int(11)NOT NULL AUTO_INCREMENT,
`email'varchar(255)COLLATE utf8_bin NOT NULL,
`password'varchar(255)COLLATE utf8_bin NOT NULL,
PRIMARY KEY(`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
AUTO INCREMENT=1
现在有了一个空表,接着使用pymysql 进行操作,见例3-2。
【例3 -2】 使用 pymysql。
import pymysql.cursors
#Connect to the database
connection =pymysql.connect(host='localhost',
user='scraper1',
password='password',
db='DB',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor()as cursor:
Sql="INSERT INTO `users`(`email`,`password`)VALUES(%s,%s)" cursor.execute(sql,('example@example.org','password'))
connection.commit()
with connection.cursor()as cursor:
sql="SELECT id`,`password`FROM `users`WHERE`email`=%s"
cursor.execute(sql,('example@example.org',))
result =cursor.fetchone()
print(result)
connection.close()
在这段代码中,首先通过 pymysql.connect()函数进行了连接配置并打开了数据库连接,
在 try 代码块中打开了当前连接的cursor) (游标),并通过cursor 执行了特定的 SQL 插入语 句。commit()方法将提交当前的操作,之后再次通过 cursor 实现对刚才插入数据的查询。最 后在 finally 语句块中关闭了当前数据库连接。
本程序的输出为:{id:1,password:password'}。
考虑到在执行 SQL 语句时可能发生错误,可以将程序写成下面的形式:
try:
except:
connection.rollback()
rollback) 方法将回滚操作。
3.5.2 使用 SQLite3
SQLite3 是一种小巧易用的轻量型关系型数据库系统,在 Python 中内置的 sqlite3 模块可 以用于与 SQLite3 数据库进行交互。先使用 PyCharm 创建一个名为 “new-sqlite3” 的 SQLite3 数据源然后使用 sqlite3 (此处的 “sqlite3” 指的是 Python 中的模块)进行建表操作,与上面对 MySQL 的操作类似:
import sqlite3
conn =sqlite3.connect('new-sqlite3')
print("Opened database successfully")
cur =conn.cursor()
cur.execute(
'''CREATE TABLE Users
(ID INT PRIMARY KEY
NOT NULL,
NAME TEXT
NOT NULL,
AGE INT
NOT NULL,
GENDER TEXT
SALARY REAL);'
)
print("Table created successfully")
conn.commit()
conn.close()
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~