@mrcoldurfuck

Sqlite3.OperationalError: no such table: users. Как решить проблему?

import sqlite3
import sys
import pathlib

script_dir = pathlib.Path(sys.argv[0]).parent
db_file = script_dir / 'database.db'
conn = sqlite3.connect(db_file)

class Database:
    def __init__(self, db_file):
        self.connection = sqlite3.connect('db_file', check_same_thread=False)
        self.cursor = self.connection.cursor()
        script_dir = pathlib.Path(sys.argv[0]).parent
        db_file = script_dir / 'database.db'
        conn = sqlite3.connect(db_file)
    def user_exists(self, user_id):
        with self.connection:
            result = self.cursor.execute("Select * FROM 'users' WHERE 'user_id' = ?", (user_id,)).fetchall()
            return bool(len(result))
    def add_user(self, user_id):
        with self.connection:
            self.cursor.execute("INSERT INTO 'users' ('user_id') VALUES (?)", (user_id,))
    def user_money(self, user_id):
        with self.connection:
            result = self.cursor.execute("Select 'money' FROM 'users' WHERE 'user_id' = ?", (user_id,)).fetchmoney()
            return int(result[0][0])
    def set_money(self, user_id, money):
        with self.connection:
            return self.cursor.execute("UPDATE 'users' SET 'money' = ? WHERE 'user_id' = ?", (money, user_id))


Вот код проги, я не понимаю как указать путь до файла базы данных, чтобы питон нашел его.
P.S. перепроверил 10 раз, такая таблица есть, я ее кинул в ту же папку что и питон прогу. Пробовал указать путь с проводника - не получилось
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
@mrcoldurfuck Автор вопроса
Я нашел решение проблемы, надо было переписать инициализацию класса, короче надо init вот так переписать:
self.connection = sqlite3.connect('db_file', check_same_thread=False)
        self.cursor = self.connection.cursor()
        db = self.connection
        c = db.cursor()
        c.execute("""CREATE TABLE users (
    id      INTEGER PRIMARY KEY AUTOINCREMENT,
    user_id INTEGER NOT NULL,
    money   INTEGER NOT NULL
                    DEFAULT (0) 
);""")
.
Здесь странная табуляция, чтобы вы не запутались прикреплю скрин.
62fb5db4822de599408821.png
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
01 окт. 2022, в 19:19
1000 руб./за проект
01 окт. 2022, в 19:05
30000 руб./за проект
01 окт. 2022, в 18:11
20000 руб./за проект