SQLAlchemy/SQLite如何创建表,然后使用Python/Flask在其中存储数据

SQLAlchemy/SQLite如何创建表,然后使用Python/Flask在其中存储数据,python,sqlite,flask,sqlalchemy,flask-sqlalchemy,Python,Sqlite,Flask,Sqlalchemy,Flask Sqlalchemy,嗨,我正在尝试在sqlite数据库中创建一个表,我应该在其中存储用户和密码。 表的创建是正确的(我用sqlite命令检查了),但是当试图存储用户和pwd时,它返回一个错误,说pwd列表不存在,而我检查了,它确实存在!! 我一定是在python代码中遗漏了什么,你能帮我一下吗? 我想我可能做错了什么,当我创建表时(正如你在代码中看到的),我使用Metadata()并传递引擎来创建_all,但是当我定义用户类时,我使用db.Model,然后用db.Column(db.String)定义列,我想可能是

嗨,我正在尝试在sqlite数据库中创建一个表,我应该在其中存储用户和密码。 表的创建是正确的(我用sqlite命令检查了),但是当试图存储用户和pwd时,它返回一个错误,说pwd列表不存在,而我检查了,它确实存在!! 我一定是在python代码中遗漏了什么,你能帮我一下吗? 我想我可能做错了什么,当我创建表时(正如你在代码中看到的),我使用Metadata()并传递引擎来创建_all,但是当我定义用户类时,我使用db.Model,然后用db.Column(db.String)定义列,我想可能是因为我创建表时没有对db的引用? 我附上了我所做的代码的截图。

Sqlite验证:

代码类用户:

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///data-users.sqlite'

engine= create_engine(app.config['SQLALCHEMY_DATABASE_URI'])
bcrypt = Bcrypt(app)
db = SQLAlchemy(app)

#CREATE TABLE
meta=MetaData()
userstable = Table('user', meta, \
    Column('id', Integer, primary_key = True, autoincrement=True), \
    Column('username', String, unique = True), \
    Column('pwd', String))
meta.create_all(engine)

class User(db.Model):

    __tablename__ = "user"
    id = db.Column(db.Integer(), primary_key = True, autoincrement=True)
    username = db.Column(db.String(64), unique = True)
    pwd = db.Column(db.String(64)) 

    def __init__(self,id,username,pwd):
        self.id=id
        self.username = username
        self.pwd = bcrypt.generate_password_hash(pwd)
下面是我如何存储用户和pwd的,它应该在表中添加一个新行

        from store_user_db import User, db
        
        DICP_FTP_DESTINATION_PSW=self.submit_pwd()
        db.create_all()
        user = User(id=001,username="ita_itf", pwd=DICP_FTP_DESTINATION_PSW)
        db.session.add(user)
        db.session.commit()
错误:

OperationalError: (sqlite3.OperationalError) table user has no column named pwd
[SQL: INSERT INTO user (id, username, pwd) VALUES (?, ?, ?)]
[parameters: (1, 'ita_itf', 'xxx')]

打开终端并启动交互式Python shell,然后键入以下内容:

from name import db
db.create_all()

其中
name
是您项目的名称。

查看我的代码,我已经完成了,可能是会话出错了?我不知道我要发疯了