flacon/sqlalchemy - OperationalError: (sqlite3.OperationalError) no such table
J'obtiens l'erreur ci-dessous
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: s_amodel [SQL: 'INSERT INTO s_amodel
Mes fichiers
forms.py
from flask_wtf import Form
class SAForm(Form):
....
models.py
from app.app_and_db import db
class SAmodel(db.Model):
id = db.Column(db.Integer(), primary_key=True)
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)
config.py
SQLALCHEMY_DATABASE_URI = os.getenv('DATABASE_URL', 'sqlite:///app.sqlite')
C'est ce que j'ai. L'app.sqlite est créé mais il est de 0 octets. Quand je soumettre quelque chose à l'aide new_sa fonction de (), j'obtiens l'erreur ci-dessus. Également comment obtenir le nom de la table "s_amodel"?
Toute aide serait grandement appréciée. Merci beaucoup!
OriginalL'auteur Potta Pitot | 2015-05-18
Vous devez vous connecter pour publier un commentaire.
Vous êtes censé pour initialiser/créer les tables en premier. Veuillez lire la la Création de la Base de données article dans l'officiel de la Fiole de documentation:
Voici Flacon exemple à l'aide d'un schéma de script SQL pour créer la base de données, tables, etc:
La méthode recommandée consiste à utiliser
db.create_all()
au sein de votre application. Par exemple, voir: https://github.com/lily-mayfield/staticfuzz/blob/d2e54186f5639a06a5a796f0499a984ca8919ed7/staticfuzz.py#L403Voici un exemple de ce que @dotslash parle: github.com/hypatia-software-org/staticfuzz/blob/master/...
OriginalL'auteur Lillian Seabreeze
Ce qui m'a aidé dans le même scénario dans lequel le fichier de base de données n'a pas été créé correctement, c'est à exécuter dans le terminal:
Dans le terminal, tapez la commande:
flask init-db
Puis et puis exécutez à nouveau l'application avec la commande:
flask run
Cette mise à jour de l'exemple de fichier db correctement.
OriginalL'auteur Hareesh Seela