我正在尝试使用 SQLAlchemy/SQLite 在现有数据库中创建一个表,我必须在其中存储用户和密码,但它返回一个错误,指出列 pwd 不存在!我错过了什么吗?我把事情搞砸了吗?我仍然不太明白,我按照一些在线教程中的所有步骤进行操作,但仍然没有任何结果。这是我开发的类对象,然后从另一个寄存器表单我尝试存储应用程序中的密码,但错误应该在此代码中:
import os
basedir = os.path.abspath(os.path.dirname(__file__))
# flask imports
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_bcrypt import Bcrypt
from sqlalchemy import *
# create flask app
app = Flask(__name__)
# set sqllite db connection
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'data-dev.sqlite')
engine= create_engine(app.config['SQLALCHEMY_DATABASE_URI'])
# bcrypt extension init to app
bcrypt = Bcrypt(app)
# sqlite init to app
db = SQLAlchemy(app)
# define meta data for table
meta=MetaData()
userstable = Table('users', meta, Column('id', Integer, primary_key = True, autoincrement=True), Column('username', String, unique=True), Column('pwd', String))
# create table to sqlite
meta.create_all(engine)
class User(db.Model):
# user columns
id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
username = db.Column(db.String(64), unique=True)
pwd = db.Column(db.String(128))
def __init__(self,username,pwd):
#self.id=id
self.username=username
self.pwd=bcrypt.generate_password_hash(pwd)
# create user object
user = User('anish','23434')
# insert user object to sqlite
db.session.add(user)
# commit transaction
db.session.commit()
这是错误:
sqlalchemy.exc.OperationalError 操作错误:(sqlite3.OperationalError) 表用户没有名为 pwd 的列 [SQL: INSERT INTO user (username, pwd) VALUES (?, ?)] [参数:('ita_itf', '$2b$12$ VmpTsd0o4uTLj0wGypGu7ujhzYHLlV8k9ekaIP1.yh5lUMMgOM4MC')]
呼啦一阵风
相关分类