数据库操作
seldom 支持sqlite3、MySQL、SQL Server、MongoDB、PostgreSQL数据库操作。
sqlite3 | MySQL | SQL Server | PostgreSQL |
---|---|---|---|
execute_sql() | execute_sql() | execute_sql() | execute_sql() |
query_sql() | query_sql() | query_sql() | query_sql() |
query_one() | query_one() | query_one() | query_one() |
insert_get_last_id() | insert_get_last_id() | insert_get_last_id() | insert_get_last_id() |
delete() | delete() | delete() | delete() |
insert() | insert() | insert() | insert() |
select() | select() | select() | select() |
update() | update() | update() | update() |
init_table() | init_table() | init_table() | init_table() |
close() | close() | close() | close() |
连接数据库
连接sqlit3数据库
from seldom.db_operation import SQLiteDB
db = SQLiteDB(r"D:\learnAPI\db.sqlite3")
连接MySQL数据库
- 安装pymysql驱动
> pip install pymysql
- 链接
from seldom.db_operation import MySQLDB
db = MySQLDB(host="127.0.0.1",
port=3306,
user="root",
password="123",
database="db_name")
连接SQL Server数据库(需要)
- 安装pymssql驱动
> pip install pymssql
- 链接
from seldom.db_operation.mssql_db import MSSQLDB
db = MSSQLDB(server="127.0.0.1",
user="SA",
password="tc@123",
database="TestDB")
操作方法
- execute_sql
执行sql语句,无返回结果。
db.execute_sql("INSERT INTO user (id, name) VALUES (1, 'tom') ")
db.execute_sql("UPDATE user SET name = 'jack' WHERE id=1")
db.execute_sql("DELETE FROM user WHERE id = 1")
- query_sql
执行查询sql语句,返回查询结果。
ret = db.query_sql("select * from user")
print(ret)
- query_one
执行查询sql语句,返回一条结果。
ret = db.query_one("select * from user")
print(ret)
- insert_get_last_id
插入数据并返回最新的ID。
last_id = db.insert_get_last_id("INSERT INTO user (id, name) VALUES (1, 'tom') ")
print(last_id)
- delete
删除表数据。
db.delete(table="user", where={"id": 1})
- insert
插入一条数据。
data = {"id": 10, "name": "jean"}
db.insert(table="user", data=data)
- select
查询表数据。
result = db.select(table="user", where={"id": 1, "name": "tom"})
print(result)
result = db.select(table="user", one=True) # one=True 返回一条结果
print(result)
- update
更新表数据。
db.update(table="user", where={"name": "tom", }, data={"name": "jack"})
- init_table
批量插入数据,在插入之前先清空表数据。
# more table data
table_data = {
"group": [
{"id": 1, "name": "test"},
{"id": 2, "name": "product"},
{"id": 3, "name": "develop"},
],
"user": [
{"id": 1, "name": "jeannie"},
{"id": 2, "name": "joye"},
{"id": 3, "name": "blue"},
],
}
db.init_table(table_data)
- close
关闭数据库连接。
db.close()
MongoDB
MongoDB 是一个基于分布式文件存储的数据库,属于非关系型数据库,与关系型数据库得操作有着较大得差异,它本身支持字典传参,所以,seldom 只简单封装了数据库连接。
- 安装pymongo
https://github.com/mongodb/mongo-python-driver
> pip show pymongo
- 连接MongoDB
from seldom.db_operation.mongo_db import MongoDB
db = MongoDB(host="localhost", port=27017, db="yapi")
参数说明:
- host: 连接地址。
- port: 端口号。
- db: 数据库名字。
pymongo
以下操作seldom没有做任何封装,请参考pymongo
- 获取集合信息
col = db.list_collection_names()
print(col)
结果:
collection list: ['project', 'log', ...]
- 获取表一条数据
data = db.project.find_one()
print("table one data:", data)
结果:
table data: {'_id': 11, 'switch_notice': True, 'is_mock_open': False, 'strice': False, 'is_json5': False, 'name': '发布会签到系统'}