コード例 #1
0
ファイル: views.py プロジェクト: Mikifevrier/kakebo_web_bz7
def nuevo():
    formulario = MovimientosForm()

    if request.method == "GET":  #validar si es un get o un post
        return render_template("alta.html", form=formulario)
    else:

        if formulario.validate():
            query = "INSERT INTO movimientos (fecha, concepto, categoria, esGasto, cantidad) VALUES (?, ?, ?, ?, ?)"
            try:
                modificaTablaSQL(query, [
                    formulario.fecha.data, formulario.concepto.data,
                    formulario.categoria.data, formulario.esGasto.data,
                    formulario.cantidad.data
                ])

            except sqlite3.Error as el_error:
                print("Error en SQL INSERT:", el_error)
                flash(
                    "Se ha producido un error en la base de datos. Pruebe en unos minutos"
                )
                return render_template("alta.html", form=formulario)

            return redirect(url_for("index"))

            #Redirect a la ruta "/"
        else:
            return render_template("alta.html", form=formulario)
コード例 #2
0
def nuevo():
    formulario = MovimientosForm()

    if request.method == 'GET':
        return render_template('alta.html', form=formulario)
    else:

        if formulario.validate():

            query = "INSERT INTO movimientos (fecha, concepto, categoria, esGasto, cantidad) VALUES (?, ?, ?, ?, ?)"

            try:
                modificaTablaSQL(query, [
                    formulario.fecha.data, formulario.concepto.data,
                    formulario.categoria.data, formulario.esGasto.data,
                    formulario.cantidad.data
                ])

            except sqlite3.Error as el_error:
                print("Error en SQL INSERT", el_error)
                flash(
                    "Se ha producido un error en la base de datos. Pruebe en unos minutos"
                )  #Flash es una clase que va a inyectar el mensaje de error en la plantilla (alta.html, base.html, etc.) que le digamos, para que aparezca como mensaje generico cuando se produzca un error
                return render_template('alta.html', form=formulario)

            return redirect(url_for("index"))

        else:
            return render_template('alta.html', form=formulario)
コード例 #3
0
ファイル: views.py プロジェクト: Mikifevrier/kakebo_web_bz7
def modificar(id):
    if request.method == 'GET':
        filas = consultaSQL("SELECT * FROM movimientos WHERE id=?", [id])
        if len(filas) == 0:
            flash("El registro no existe", "error")
            return render_template('modificar.html', )
        registro = filas[0]
        registro['fecha'] = date.fromisoformat(registro['fecha'])

        formulario = MovimientosForm(data=registro)

        return render_template('modificar.html', form=formulario)
    else:
        formulario = MovimientosForm()
        if formulario.validate():
            try:
                modificaTablaSQL(
                    "UPDATE movimientos SET fecha = ?, concepto = ?, categoria = ?, esGasto = ?, cantidad = ? WHERE id = ?",
                    [
                        formulario.fecha.data, formulario.concepto.data,
                        formulario.categoria.data, formulario.esGasto.data,
                        formulario.cantidad.data, id
                    ])
                flash("Modificación realizada con éxito")
                return redirect(url_for("index"))
            except sqlite3.Error as e:
                print("Error en update:", e)
                flash(
                    "Se ha producido un error en acceso a base de datos. Contacte con el administrador",
                    "error")
                return render_template("modificar.html", form=formulario)
        else:
            return render_template("modificar.html", form=formulario)
コード例 #4
0
def nuevo():
    formulario = MovimientosForm()
    if request.method == 'GET':
        return render_template('alta.html', form=formulario)
    else:  # será un POST
        if formulario.validate():  # insertar el movimiento en la base de datos

            query = """ INSERT INTO movimientos (fecha, concepto, categoria, esGasto, cantidad)
                        VALUES (?, ?, ?, ?, ?) """
            try:
                modificaTablaSQL(query, [
                    formulario.fecha.data, formulario.concepto.data,
                    formulario.categoria.data, formulario.esGasto.data,
                    formulario.cantidad.data
                ])
            except sqlite3.Error as el_error:
                print("ERROR EN SQL", el_error)
                flash(
                    'Se ha producido un error en la base de datos. Pruebe en unos minutos'
                )
                return render_template('alta.html', form=formulario)

            return redirect(url_for(
                'index'))  # redirect a la ruta / a través de la función index
        else:
            return render_template('alta.html', form=formulario)
コード例 #5
0
ファイル: views.py プロジェクト: blancamm/kakebo_web
def nuevo():
    formulario = MovimientosForm()

    if request.method == 'GET':
        return render_template('alta.html', form=formulario)
    else:
        if formulario.validate(
        ):  #esto es un metodo del formulario flask en el que llama a los validators

            query = """
            INSERT INTO Movimientos  (fecha, concepto, categoria, esGasto, cantidad)
            VALUES (?, ?, ?, ?, ?)
            """
            #se va a inyectar query en squlite y por eso se pone en ese lengauje
            #comentarios = es una cadena en linea, para ponerlo en varios lineas se usan las tres comillas,
            #se podria utilizar '' pero no se podria divir en lineas
            #para informar a sqlite de que es avriable lo que se metge es poner el signo ?
            #tambien en vez de ? se puede poner :concepto, :categoria, ... y en execute se pone en vez
            #de una lista, un diccionario tipo 'fecha': formulario.fecha.data, ....
            #si es true, es que no hay errores (el if de formulario.validate())
            #SE BUSCAN LOS COMANDOS DEL SQLITE

            #hay que controlar los errores de accesos

            try:
                dbManager.modificaSQL(query, [
                    formulario.fecha.data, formulario.concepto.data,
                    formulario.categoria.data, formulario.esGasto.data,
                    formulario.cantidad.data
                ])
            except sqlite3.Error as el_error:
                print('Error en SQL INSERT', el_error)
                flash(
                    'Se ha producido un error en la base de datos. Pruebe en unos minutos.'
                )  #ahora se prepara la plantilla 'base.html' para este flash que es generico (el flash lo que hace es que este mensaje este disponbible para el html)
                return render_template('alta.html', form=formulario)

            return redirect(url_for('index'))

        else:
            return render_template('alta.html', form=formulario)
コード例 #6
0
ファイル: views.py プロジェクト: aidalaida/kakebo_wev_bz7
def modificar(id):

    if request.method == 'GET':
        filas = consultaSQL("SELECT * FROM movimientos WHERE id=?", [id])
        if len(filas) == 0:
            flash("El registro no existe", "error")
            return render_template('modificar.html')
        registro = filas[0]
        registro['fecha'] = date.fromisoformat(
            registro['fecha'])  #con el metodo date

        formulario = MovimientosForm(data=registro)

        return render_template('modificar.html', form=formulario)
    else:
        formulario = MovimientosForm()
        if formulario.validate():

            try:
                modificaTablaSQL(
                    "UPDATE movimientos SET fecha =?, concepto =?, categoria=?, esGasto=?, cantidad=? WHERE id=?",
                    [
                        formulario.fecha.data, formulario.concepto.data,
                        formulario.categoria.data, formulario.esGasto.data,
                        formulario.cantidad.data, id
                    ])

            except sqlite3.Error as el_error:
                print("Error en SQL UPDATE", el_error)
                flash(
                    "Se ha producido un error en la base de datos. Pruebe en unos minutos",
                    "error")  #inyecta el mensaje en la plantilla
                return render_template('modificar.html', form=formulario)

            flash("Modificación realizada con éxito", 'aviso')
            return redirect(url_for("index"))

        else:
            return render_template('modificar.html', form=formulario)
コード例 #7
0
def nuevo():
    formulario = MovimientosForm()
    if request.method == 'GET':
        return render_template('alta.html', form=formulario)
    else:
        if formulario.validate():
            conexion = sqlite3.connect("movimientos.db")
            cur = conexion.cursor()
            query = "INSERT INTO movimientos (fecha, concepto, categoria, esGasto, cantidad) VALUES (?, ?, ?, ?, ?);"
            try:
                cur.execute(query, [
                    formulario.fecha.data, formulario.concepto.data,
                    formulario.categoria.data, formulario.esGasto.data,
                    formulario.cantidad.data
                ])
            except sqlite3.Error as el_error:
                print("Error en SQL INSERT", el_error)
                return render_template('alta.html', form=formulario)
            conexion.commit()
            conexion.close()
            return redirect(url_for("index"))
            #Redirect a la ruta /
        else:
            return render_template('alta.html', form=formulario)
コード例 #8
0
ファイル: views.py プロジェクト: blancamm/kakebo_web
def modificar(id):
    if request.method == 'GET':
        registro = dbManager.consultaUnaSQL(
            "SELECT * FROM movimientos WHERE id=?;", [id])
        if not registro:
            flash('El registro no existe', 'error')
            return render_template('modificar.html', form=MovimientosForm())

        #como la data cogida de la fila[0] (que es un diccionario con ese registro)
        #nos da la fecha en el formato incorrecto, se hace lo siguiente:
        registro['fecha'] = date.fromisoformat(registro['fecha'])

        formulario = MovimientosForm(
            data=registro
        )  #esto es para crear el formulario pero ya con los datos puestos del registro que vamos a modicar

        return render_template('modificar.html', form=formulario)
        #en el html. pongo form, porque le paso ese formulario que es el formulario con
        #los valores del registro

    else:
        formulario = MovimientosForm(
        )  #si no dice na coge el formulario que ha entrado, el de request.form
        #es la info que viene del navegador no del servidor por eso no se tomo el formulario de lo de arriba del metodo get

        if formulario.validate():
            query = "UPDATE movimientos SET fecha=?, concepto=?, categoria=?, esGasto=?, cantidad=? WHERE id=?;"
            try:
                dbManager.modificaSQL(
                    query, [
                        formulario.fecha.data, formulario.concepto.data,
                        formulario.categoria.data, formulario.esGasto.data,
                        formulario.cantidad.data, id
                    ]
                )  #formulario porque es instancia de Movimeintos form que tiene fecha \
                #que es una instancia de la clase Field con atributo data

                flash(
                    'Modificación realizada con éxito', 'aviso'
                )  #para que los escriba en eol navegador y no en el terminal (en el servidor)
                return redirect(url_for('index'))

            except sqlite3.Error as e:
                flash(
                    'Se ha producido un error de base de datos, vuelva a intentarlo',
                    'error')
                return render_template('modificar.html', form=formulario)

        else:
            return render_template('modificar.html', form=formulario)