@Nomemes

Как добавить значение в базу данных?

Есть вот такой код:

models.py
from peewee import *

db = SqliteDatabase('db/database.db')

class BaseModel(Model):
    id = PrimaryKeyField(unique=True)
    
    class Meta:
        database = db
        order_by = 'id'

class Character(BaseModel):
    name = CharField()
    maxhp = FloatField(null=True)
    maxstagger = FloatField(null=True)


main.py
from peewee import *
from models import *

with db:
    one = Character(name='Noname').save()

print('Finally')


Таблица создаласть без проблем, однако на попытку что-то добавить выдает ошибку:
Traceback (most recent call last):
File "C:\Users\������\AppData\Local\Programs\Python\Python310\lib\site-packages\peewee.py", line 3177, in execute_sql
cursor.execute(sql, params or ())
sqlite3.OperationalError: no such table: character

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "c:\Users\������\Desktop\DataBaseProject\tempCodeRunnerFile.py", line 5, in
one = Character(name='Noname').save()
File "C:\Users\������\AppData\Local\Programs\Python\Python310\lib\site-packages\peewee.py", line 6640, in save
pk = self.insert(**field_dict).execute()
File "C:\Users\������\AppData\Local\Programs\Python\Python310\lib\site-packages\peewee.py", line 1918, in inner
return method(self, database, *args, **kwargs)
File "C:\Users\������\AppData\Local\Programs\Python\Python310\lib\site-packages\peewee.py", line 1989, in execute
return self._execute(database)
File "C:\Users\������\AppData\Local\Programs\Python\Python310\lib\site-packages\peewee.py", line 2778, in _execute
return super(Insert, self)._execute(database)
File "C:\Users\������\AppData\Local\Programs\Python\Python310\lib\site-packages\peewee.py", line 2496, in _execute
cursor = database.execute(self)
File "C:\Users\������\AppData\Local\Programs\Python\Python310\lib\site-packages\peewee.py", line 3190, in execute
return self.execute_sql(sql, params, commit=commit)
File "C:\Users\������\AppData\Local\Programs\Python\Python310\lib\site-packages\peewee.py", line 3174, in execute_sql
with __exception_wrapper__:
File "C:\Users\������\AppData\Local\Programs\Python\Python310\lib\site-packages\peewee.py", line 2950, in __exit__
reraise(new_type, new_type(exc_value, *exc_args), traceback)
File "C:\Users\������\AppData\Local\Programs\Python\Python310\lib\site-packages\peewee.py", line 191, in reraise
raise value.with_traceback(tb)
File "C:\Users\������\AppData\Local\Programs\Python\Python310\lib\site-packages\peewee.py", line 3177, in execute_sql
cursor.execute(sql, params or ())
peewee.OperationalError: no such table: character
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Я подозреваю, что создалась у тебя не таблица, а файл базы данных.
Что бы создать таблицу, используй db.create_tables([Character])
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы