Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)没有这样的表:user_Python_Sqlite_Flask_Sqlalchemy - Fatal编程技术网

Python sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)没有这样的表:user

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烧瓶并将其加载到设置中

我一直收到这个错误sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)没有这样的表:user,但我不知道为什么,因为我使用命令sqlite3 database.db和.tables在good目录下创建了数据库。我尝试了db.create_all()但是如果它在db声明之前,它当然不起作用,但是如果我把它放在db声明之后,它不会改变任何东西

我还有一个问题,那就是db。“”总是被标记为错误。我尝试安装pylint烧瓶并将其加载到设置中。它工作了大约5分钟,然后错误又回来了(SQLAlchemy实例没有'Column'memberpylint(没有成员)

从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(除非以绑定的形式显式地传递一个带有打开事务的连接)。