天下程序员首页cx06.com
管理 |  登录 |  注册
袁鹏飞的小屋
笔记(共39个) > python

python sqlite3最新orm(简易版)

阅读 0赞 0回复 2024-08-18 10:18:52
import sqlite3
class Db:
    def __init__(self, db_name):
        self.db_name = db_name
        self.conn = self.connect()
        self.cursor = self.conn.cursor()
    def connect(self):
        """建立数据库连接"""
        return sqlite3.connect(self.db_name)
    def close(self):
        """关闭数据库连接"""
        if self.cursor:
            self.cursor.close()
        if self.conn:
            self.conn.close()
    def execute(self, sql, params=()):
        """执行 SQL 语句并提交更改"""
        self.cursor.execute(sql, params)
        self.conn.commit()
        self.close()
    def create_table(self, table_name, columns):
        """创建新表"""
        column_defs = ', '.join(f'{name} {type}' for name, type in columns.items())
        self.execute(f'CREATE TABLE IF NOT EXISTS {table_name} ({column_defs})')
    def add(self, table_name, data):
        """插入数据到表中"""
        placeholders = ', '.join('?' * len(data))
        columns = ', '.join(data.keys())
        values = tuple(data.values())
        sql=f'INSERT INTO {table_name} ({columns}) VALUES ({placeholders})', values
        self.execute(sql)
 
    def update(self, table_name, data, condition):
        """更新表中的数据"""
        set_clause = ', '.join(f'{key}=?' for key in data.keys())
        values = tuple(data.values())
        self.execute(f'UPDATE {table_name} SET {set_clause} WHERE {condition}', values)
    def delete(self, table_name, where):
        """从表中删除数据"""
        self.execute(f'DELETE FROM {table_name} WHERE {where}')
    def find(self,table_name, where):
        """从表中查找数据"""
        sql=f'select * FROM {table_name} WHERE {where}'
        self.cursor.execute(sql)
        results = self.cursor.fetchone()
        self.close()
        return results
    def select(self,table_name, where):
        """执行 SQL 查询并返回所有结果"""
        sql=f'select * FROM {table_name} WHERE {where}'
        self.cursor.execute(sql)
        results = self.cursor.fetchall()
        self.close()
        return results
 

赞(0)

文章作者置顶的回复

全部回复列表 当前第(1)页

添加回复,文明发言,会审核.(服务区回复可以发广告)

作者最新笔记
天下程序员 www.cx06.com 程序员的网上家园!
作者微信:13126507001