I’ve been working on a Flask application for a college project, and I’m facing an issue where the data isn’t getting saved to the database. Everything seems to work fine, but for some reason, the data isn’t persisting.
I suspect that the main problem lies in saving checkbox data to the database, but after researching, it seems like I’m doing it correctly (probably don’t, but anyways…)
Here’s the relevant Python code:
from flask import Flask, session, render_template, redirect, url_for, request
from flask_sqlalchemy import SQLAlchemy
import os
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///preferences.db'
db = SQLAlchemy(app)
app.app_context().push()
class Preferencia(db.Model):
id = db.Column(db.Integer, primary_key= True) ## adiciona uma linha para numerar os usuários, eu acho?
rpg_fav = db.Column(db.String)
experiencia = db.Column(db.String)
data = db.Column(db.String)
def __init__(self, rpg_fav, experiencia, data):
self.rpg_fav = rpg_fav
self.experiencia = experiencia
self.data = data
#cria o /perfil
@app.route('/perfil', methods=['POST','GET'])
def addPref():
try:
if request.method == 'GET':
try:
users = Preferencia.query.all()
return render_template('preferencias.html', usuarios=users)
except Exception as e:
return f"Erro: {str(e)}"
elif request.method == 'POST':
if 'rpgFav' in request.form and 'exp' in request.form and 'dataRpg' in request.form:
rpg_fav = request.form.getlist('rpg_fav') ##issaq vai receber os valores em lista, ao invés de um valor só. Bobão.
experiencia = request.form.getlist('experiencia')
data = request.form['datarpg']
rpg_fav_str = ','.join(rpg_fav)
experiencia_str = ','.join(experiencia)
novoUser = Preferencia(rpg_fav=rpg_fav_str, experiencia=experiencia_str, data=data)
db.session.add(novoUser)
db.session.commit()
return render_template('index.html')
except Exception as e:
return f"Erro: {str(e)}"
##rota comum do site, primeira coisa que abre!
@app.route("/")
def index(): ## FUNCIONANDO PERFEITAMENTE
return render_template('index.html')
if __name__ == "__main__":
db.create_all()
app.run(debug= True)
Just pleaaaase help me find a reason for it
New contributor
Faehzin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.