使用SQLite
SQLite是一种嵌入式数据库,数据库就是一个文件。
要操作关系型数据库,首先需要连接数据库,一个数据库连接称为Connection;连接到数据库后需要打开游标——Cursor,通过Cursor执行Sql语句,然后获得执行结果。
数据库要连接到Python只需要提供符合Python标准的数据库驱动即可。
Python标准库中有SQLite的驱动内置,所以可以直接操作SQLite数据库
# 导入SQLite驱动:
>>> import sqlite3
# 连接到SQLite数据库
# 数据库文件是test.db
# 如果文件不存在,会自动在当前目录创建:
>>> conn = sqlite3.connect('test.db')
# 创建一个Cursor:
>>> cursor = conn.cursor()
# 执行一条SQL语句,创建user表:
>>> cursor.execute('create table user (id varchar(20) primary key, name varchar(20))')
<sqlite3.Cursor object at 0x10f8aa260>
# 继续执行一条SQL语句,插入一条记录:
>>> cursor.execute('insert into user (id, name) values (\'1\', \'Michael\')')
<sqlite3.Cursor object at 0x10f8aa260>
# 通过rowcount获得插入的行数:
>>> cursor.rowcount
1
# 关闭Cursor:
>>> cursor.close()
# 提交事务:
>>> conn.commit()
# 关闭Connection:
>>> conn.close()
Mysql能够支持高并发量的访问,SQLite无法支持高并发量的访问。
使用SQLAlchemy
数据库是一个二维表,包含多行多列。把一个表的内容用Python的数据结构表示出来的话,可以用一个list表示,list里每一个元素是一个tuple。
[
('1', 'Michael'),
('2', 'Bob'),
('3', 'Adam')
]
如果把一个tuple用class表示出来的话,就可以很容易看出表的结构。
class User(object):
def __init__(self, id, name):
self.id = id
self.name = name
[
User('1', 'Michael'),
User('2', 'Bob'),
User('3', 'Adam')
]
这就是ORM技术
ORM即object-relation-mapping,把关系数据库上的结构映射到对象上去。Python里有ORM框架。
以上内容摘自于廖雪峰Python教程