相关疑难解决方法(0)

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

我很新闻,并试图自己建立一个博客,我遇到了SQLite操作错误的问题.我已经在Github和Stackoverflow上研究了类似的问题,但是在我发现的问题中没有出现典型的拼写错误或错误.如果有人能帮助我,那将是非常感激和非常好的,因为这个问题就像杀了我一样已经花了我两天,我觉得非常糟糕.

在代码中我已经定义了表名为"users_table"并在开头运行"db.create_all()"来创建表,但是每次提交时都会出现"没有这样的表user_table"的错误更新用户信息.

这是我测试SQLite操作的方法:

(under /project) python3 manage.py shell
>>> u = User(email='foo@bar.com', username='foobar', password='player')
>>> db.create_all()
>>> db.session.add(u)
>>> db.session.commit()  # with following error message
Traceback (most recent call last):
  File "C:\...\Python\Python36-32\lib\site-packages\sqlalchemy\engine\base.py", line 1182, in _execute_context
  context)
  File "C:\...\Python\Python36-32\lib\site-packages\sqlalchemy\engine\default.py", line 470, in do_execute
  cursor.execute(statement, parameters)
sqlite3.OperationalError: no such table: users_table
...
...
  sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: users_table
Run Code Online (Sandbox Code Playgroud)

我已将代码最小化为以下四个部分,这可能会重现错误消息:

/project/app/__init__.py:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from config import config

db = SQLAlchemy()

def create_app(config_name):
    app = Flask(__name__) …
Run Code Online (Sandbox Code Playgroud)

sqlite sqlalchemy flask python-3.x flask-sqlalchemy

8
推荐指数
3
解决办法
2万
查看次数

flask/sqlalchemy - OperationalError:(sqlite3.OperationalError)没有这样的表

我得到以下错误sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)没有这样的表:s_amodel [SQL:'INSERT INTO s_amodel

我的文件

forms.py

from flask_wtf import Form
class SAForm(Form):
Run Code Online (Sandbox Code Playgroud)

....

models.py

from app.app_and_db import db 

class SAmodel(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
Run Code Online (Sandbox Code Playgroud)

views.py

from app.app_and_db import app, db
from app.sa.forms import SAForm
from app.sa.models import SAmodel

@sa_blueprint.route('/sa/new', methods=['GET','POST'])
def new_sa():

        form = SAForm(request.form, SAmodel)

        if request.method=='POST' and form.validate():
            model = SAmodel()
            form.populate_obj(model)
            db.session.add(model)
            db.session.commit()
            return redirect(url_for("sa.home_page"))
        return render_template("new_sa.html", form=form)
Run Code Online (Sandbox Code Playgroud)

config.py

SQLALCHEMY_DATABASE_URI = os.getenv('DATABASE_URL', 'sqlite:///app.sqlite')
Run Code Online (Sandbox Code Playgroud)

这就是我所拥有的.app.sqlite已创建,但它是0字节.当我使用new_sa()函数提交一些东西时,我得到了上面的错误.它是如何得到表名"s_amodel"的?

任何帮助将不胜感激.非常感谢!

python sqlite sqlalchemy flask

5
推荐指数
1
解决办法
1万
查看次数