首页 > 解决方案 > 更新 Varchars 数组的问题 SQLALCHEMY

问题描述

当我尝试使用 SQLALCHEMY 升级 VARCHARS 数组时,我遇到了一些问题。我的输入例如:

['Particular','Comercial']

但在我的数据库中,它显示为:

['[', "'", 'P', 'a', 'r', 't', 'i', 'c', 'u', 'l', 'a', 'r', "'", ',', "'", 'C', 'o', 'm', 'e', 'r', 'c', 'i', 'a', 'l', "'", ']']

我要更新的烧瓶代码是这个:

@app.route('/update', methods=['GET', 'POST'])
def update():
    if request.method == 'POST':
        my_data = Data.query.get(request.form.get('id_auto'))

        my_data.modelo = request.form['modelo']
        my_data.anofabricacion = request.form['anofabricacion']
        my_data.concesionario = request.form['concesionario']
        my_data.foto = request.form['foto']
        my_data.documentacion = request.form['documentacion']
        my_data.precio = request.form['precio']
        my_data.moneda = request.form['moneda']
        print(request.form['ciudadesdisp'])
        my_data.ciudadesdisp = request.form['ciudadesdisp']
        print(my_data.ciudadesdisp)
        print(my_data)
        my_data.tipocarroceria = request.form['tipocarroceria']
        my_data.sku = request.form['sku']
        print(request.form['usoauto'])
        my_data.usoauto = request.form['usoauto']
        print(my_data.usoauto)
        my_data.marca = request.form['marca']

        print(request.form.get('presentar'))

        if request.form.get('presentar') == 'on':
            print("entro if")
            my_data.presentar = True

        else:
            print("entro else")
            my_data.presentar = False

        db.session.commit()
        flash("¡Auto actualizado satisfactoriamente!")

        return redirect(url_for('Index'))

这就是我声明我的班级的方式:

class Data(db.Model):
    __tablename__ = 'autos'
    id_auto = db.Column(db.VARCHAR, primary_key=True)
    modelo = db.Column(db.VARCHAR(255))
    anofabricacion = db.Column(db.BIGINT)
    concesionario = db.Column(db.VARCHAR(255))
    foto = db.Column(db.VARCHAR(255))
    documentacion = db.Column(db.VARCHAR(255))
    precio = db.Column(db.BIGINT)
    moneda = db.Column(db.VARCHAR(255))
    ciudadesdisp = db.Column(db.ARRAY(VARCHAR(255)))
    tipocarroceria = db.Column(db.VARCHAR(255))
    sku = db.Column(db.VARCHAR(255))
    usoauto = db.Column(db.ARRAY(VARCHAR(255)))
    marca = db.Column(db.VARCHAR(255))
    presentar = db.Column(db.BOOLEAN)

有人知道为什么会发生这种情况吗?

标签: pythonpostgresqlflasksqlalchemyflask-sqlalchemy

解决方案


import json
json.loads(request.form['ciudadesdisp'])
json.loads(request.form['usoauto'])

推荐阅读