python 有一套自带的数据库API接口 SQLite
上代码:
#导入驱动
import os, sqlite3
#创建一个cursor,我的理解是创建一个可以操作数据库的实例
cursor=conn.cursor()
#创建一个user表,使用的语法就是.execute('SQL 语法')
#如果有数据库就连接,没有就创建一个然后再连接
db_file = os.path.join(os.path.dirname(__file__), 'test.db')
if os.path.isfile(db_file):
os.remove(db_file)
# 初始数据:
#连接数据库
conn = sqlite3.connect(db_file)
#创见一个数据库的实例
cursor = conn.cursor()
cursor.execute('create table user(id varchar(20) primary key, name varchar(20), score int)')
cursor.execute(r"insert into user values ('A-001', 'Adam', 95)")
cursor.execute(r"insert into user values ('A-002', 'Bart', 62)")
cursor.execute(r"insert into user values ('A-003', 'Lisa', 78)")
#每一次使用完数据库之后要先关闭数据库的实例,在关闭数据库
cursor.close()
#关闭之前提交一遍
conn.commit()
conn.close()
def get_score_in(low, high):
# ' 返回指定分数区间的名字,按分数从低到高排序 '
try:
conn = sqlite3.connect(db_file)
cursor = conn.cursor()
cursor.execute("select name from user where score>=? and score<=? order by score ",(low,high))
values = cursor.fetchall()
print( 'val=',values)
# x=[]
# for x in values:
# print('x=',x)
# print('x[0]=',x[0])
# print('x[0] for x in values=',[x[0] for x in values])
#x[0] for x in values
finally:
cursor.close()
# conn.commit()
conn.close()
return [x[0] for x in values]
#----
# # 测试:
assert get_score_in(80, 95) == ['Adam'], get_score_
assert get_score_in(60, 100) == ['Bart', 'Lisa', 'Adam'], get_score_in(60, 100)
print('Pass')
使用MYSql
需要安装一个驱动
驱动:
pip install mysql-connector-python --allow-external mysql-connector-python
或者:当以安装Anaconda可以用:conda install mysql-connector-python
mysqld的使用方式是:
conn = mysql.connector.connect(user='root', password='password', database='test')
其他都一样