Python sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)没有这样的表:user
我一直收到这个错误sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)没有这样的表:user,但我不知道为什么,因为我使用命令sqlite3 database.db和.tables在good目录下创建了数据库。我尝试了db.create_all()但是如果它在db声明之前,它当然不起作用,但是如果我把它放在db声明之后,它不会改变任何东西 我还有一个问题,那就是db。“”总是被标记为错误。我尝试安装pylint烧瓶并将其加载到设置中。它工作了大约5分钟,然后错误又回来了(SQLAlchemy实例没有'Column'memberpylint(没有成员))Python sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)没有这样的表:user,python,sqlite,flask,sqlalchemy,Python,Sqlite,Flask,Sqlalchemy,我一直收到这个错误sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)没有这样的表:user,但我不知道为什么,因为我使用命令sqlite3 database.db和.tables在good目录下创建了数据库。我尝试了db.create_all()但是如果它在db声明之前,它当然不起作用,但是如果我把它放在db声明之后,它不会改变任何东西 我还有一个问题,那就是db。“”总是被标记为错误。我尝试安装pylint烧瓶并将其加载到设置中
从flask导入flask,呈现模板,重定向,url
从flask_引导导入引导
来自flask_wtf进口FlaskForm
从wtforms导入StringField、PasswordField、BooleanField
从wtforms.validators导入所需的输入、电子邮件、长度
从flask_sqlalchemy导入sqlalchemy
从werkzeug.security导入生成密码散列,检查密码散列
从flask_login导入LoginManager、UserMixin、login_用户、login_required、logout_用户、current_用户
app=烧瓶(名称)
app.config['SECRET\u KEY']=“ThisIssuppedTobeSecret!”
app.config['SQLALCHEMY\u DATABASE\u URI']='sqlite:///sqlite-tools-win32-x86-3290000/database.db'
引导=引导(应用程序)
db=SQLAlchemy(应用程序)
login\u manager=LoginManager()
登录管理器。初始化应用程序(应用程序)
login\u manager.login\u视图='login'
类用户(UserMixin,db.Model):
id=db.Column(db.Integer,主键=True)
username=db.Column(db.String(15),unique=True)
email=db.Column(db.String(50),unique=True)
密码=db.Column(db.String(80))
@登录\u manager.user\u加载程序
def加载用户(用户id):
返回User.query.get(int(User\u id))
类别登录表单(烧瓶表单):
username=StringField('username',验证器=[InputRequested(),长度(最小值=4,最大值=15)])
password=PasswordField('password',验证器=[InputRequested(),长度(最小值=8,最大值=80)])
记住=布尔菲尔德(“记住我”)
注册等级(烧瓶形式):
email=StringField('email',验证器=[InputRequested(),email(message='Invalid email'),长度(max=50)])
username=StringField('username',验证器=[InputRequested(),长度(最小值=4,最大值=15)])
password=PasswordField('password',验证器=[InputRequested(),长度(最小值=8,最大值=80)])
定义模型后,需要调用create_all()
和commit()
来更新对数据库的更改
例如
class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(15), unique=True)
email = db.Column(db.String(50), unique=True)
password = db.Column(db.String(80))
db.create_all()
db.session.commit()
定义模型后调用
create\u all()
。在这种情况下,提交是不必要的。元数据在其自己的事务中运行DDL(除非以绑定的形式显式地传递一个带有打开事务的连接)。