Задать вопрос
@UserTypical3

Как приконектиться к базе 1 раз?

Всем привет!
Стал часто использовать запросы базы данных в функциях и так получается, что в каждой новой функции новый конект к базе. Хочу сделать так, чтобы конект происходил 1 раз и после ипользовался в функции. Вот что у меня вышло, но не работает. Помогите, пожалуйста. (Бд состоит из 1 столбца number)

import sqlite3

db = sqlite3.connect('base.db')
cursor = db.cursor()

def  add(cursor):
    a = 1
    cursor.execute('INSERT INTO base(number) VALUES("{}")'.format(a))

def change(cursor):

         ...

add(cursor)
  • Вопрос задан
  • 136 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
nullnull
@nullnull
Из-за того, что параметр называется также, как глобальная переменная, вот и не работает.
Примерно должно быть так:

UPD: исправлен пример, спасибо MinTnt за внимательность
import sqlite3

db = sqlite3.connect('base.db')
cursor = db.cursor()

def  add():
    a = 1
    cursor.execute('INSERT INTO base(number) VALUES("{}")'.format(a))

def change():
    pass

add()


А ещё лучше в if-name-main стиле:
https://ru.stackoverflow.com/questions/515852/
import sqlite3

def  add(cursor):
    a = 1
    cursor.execute('INSERT INTO base(number) VALUES("{}")'.format(a))

def change(cursor):
    pass

if __name__ == "__main__":
    db = sqlite3.connect('base.db')
    cursor = db.cursor()
    add(cursor)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы