Python: Работа с SQLite

Программирование Python: Работа с SQLite

Помечено: , ,

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 1 месяц, 1 неделя назад.

  • Автор
    Сообщения
  • #5353
    @admin

    Для работы с SQLite из Python можно использовать нативную библиотеку, ее функциональности достаточно для основных задач. Некоторые могут сказать: зачем так, когда есть SQLAlchemy и можно писать независимый от СУБД код, отвечу: не для всех задач нужно тащить framework.

    Для работы с SQLite требуется сделать импорт пакета:
    import sqlite3

    Сделаем подключение к базе (если ее нет — создадим) и удалим таблицу item_color если она присутствует:

    def dropTable():
        conn_sqlite = sqlite3.connect('example.db')
        cur_sqlite = conn_sqlite.cursor()
        cur_sqlite.execute("DROP TABLE IF EXISTS item_color")
        conn_sqlite.commit()

    Откроем соединение с базой, создадим item_color, внесем в нее запись, значения укажем явно к SQL тексте:

    def loadSimple():
    	conn_sqlite = sqlite3.connect('example.db')
    	cur_sqlite = conn_sqlite.cursor()
    	cur_sqlite.execute("create table item_color (id INTEGER, title TEXT);")	
    	sql = 'insert into item_color (id,title) values (1,"black")'
    	cur_sqlite.execute(sql)
    	conn_sqlite.commit()	

    Откроем соединение и добавим запись в item_color используя параметры (вариант 1). Параметры передаем в виде словаря, в тексте SQL запроса укажем именованные параметры:

    def loadWithParams1():
    	conn_sqlite = sqlite3.connect('example.db')
    	cur_sqlite = conn_sqlite.cursor()
    	
    	data = {}
    	data["id"] = 2
    	data['title'] = 'red'
    	
    	sql = 'insert into item_color (id,title) values (:id,:title)'
    
    	cur_sqlite.execute(sql,data)
    	conn_sqlite.commit()	

    Откроем соединение и добавим запись в item_color используя параметры (вариант 2). Параметры передадим в виде Массива, в тексте SQL запроса укажем параметры через знак вопроса (?).

    def loadWithParams2():
    	conn_sqlite = sqlite3.connect('example.db')
    	cur_sqlite = conn_sqlite.cursor()
    	
    	data = [3,'white']
    	
    	sql = 'insert into item_color (id,title) values (?,?)'
    	cur_sqlite.execute(sql,data)
    	conn_sqlite.commit()

    Сделаем вызов методов:

    # run methods
    dropTable()
    loadSimple()
    loadWithParams1()
    loadWithParams2()

Для ответа в этой теме необходимо авторизоваться.