sqlite - 没有这样的表:用户 [SQL: INSERT INTO users (username) VALUES (?)] sqlalchemy.exc.OperationalError: (sqlite3.OperationalError)
问题描述
IDE 无法识别tablename = 'users' 我觉得下面附加的代码有问题
from puppycompanyblog import db
from flask_login import UserMixin
class User(db.Model, UserMixin):
# Creating a table
__tablename__ = 'users'
# attributes table columns
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), unique=True, index=True)
def __init__(self, username):
self.username = username
def __repr__(self):
return f"UserName: {self.username}"
解决方案
您需要先调用,db.create_all()
然后才能将用户添加到您的表中,目前您的数据库中没有这样的表。
这是一个有用的代码片段,可将 flask cli 命令添加flask initdb
到您的项目中,您可以在运行应用程序之前使用该命令创建或删除数据库。
import click
@app.cli.command()
@click.option('--drop', is_flag=True, help='Create after drop')
def initdb(drop):
'''Initialize database'''
if drop:
click.confirm('This operation will delete the database, do you want to continue', abort=True)
db.drop_all()
click.echo('Database dropped.')
db.create_all()
click.echo('Database Initialized.')
推荐阅读
- jenkins - Jenkins 是否具有非机密凭据等功能?
- apache - 无法使用 Ubuntu Server AWS 查看 Apache 测试页
- r - 过滤掉 purr 中最长的字符串
- c - fscanf 导致分段错误
- python - 如何访问类并获取可用操作的 dir()?
- git - Git 错误“无法将对象迁移到永久存储”从 bitbucket 推送到 Azure webapp
- java - 如何修复 getSource() 方法以在 actionPerformed 类中编辑 JButton 文本?
- speech-recognition - 有没有办法使用 HTK 获得单音素概率?
- amazon-web-services - 如何修复 DynamoDB JS API 阻塞和超时我的 Lambda 函数?
- java - 修改后的 N 皇后与放置的皇后