peewee 'no such table' 错误

peewee 'no such table' error

我正在尝试使用 flask 和 peewee 将数据放入数据库,但我遇到了以下错误:peewee.OperationalError: no such table: post

我的 models.py 文件如下:

from peewee import *
import datetime

db = SqliteDatabase('posts.db') #create database to interact with

#create a class for blogposts
class Post(Model):
    id = PrimaryKeyField()
    date = DateTimeField(default = datetime.datetime.now)
    title = CharField()
    text = TextField()

    class Meta:
        database = db

def initialize_db():
    db.connect()
    db.create_tables([Post], safe = True)
    db.close()

我已经用谷歌搜索过了,对于大多数人来说,缺少 'db.create_tables()' 似乎是问题所在。显然,它在我的代码中,所以我真的不确定错误来自哪里。一些建议将不胜感激。当我尝试使用另一个 .py 文件填充 'text' 字段时,问题似乎特别出现。

我将您的代码改编成以下代码段,它对我有用:

from peewee import *
import datetime

db = SqliteDatabase('posts.db') #create database to interact with

#create a class for blogposts
class Post(Model):
    id = PrimaryKeyField()
    date = DateTimeField(default = datetime.datetime.now)
    title = CharField()
    text = TextField()

    class Meta:
        database = db

def initialize_db():
    db.connect()
    db.create_tables([Post], safe = True)
    db.close()

initialize_db() #if db tables are not created, create them
post = Post.create(id=4, title="Some title", text="some text1") #add a new row
post.save() #persist it to db, not necessarily needed

创建新的 Post(即数据库中的新行)时,您需要调用 create 方法。除此之外,initialize_db() 似乎工作正常。

如果您无法对数据库执行任何写入操作,请确保您在尝试执行此操作的目录中具有写入权限(在这种情况下,它将是您的工作目录)