Python 更新Varchars SQLALCHEMY数组时出现问题
当我尝试使用SQLALCHEMY升级一个varchar数组时,我遇到了一些问题。 例如,我的输入是:Python 更新Varchars SQLALCHEMY数组时出现问题,python,postgresql,flask,sqlalchemy,flask-sqlalchemy,Python,Postgresql,Flask,Sqlalchemy,Flask Sqlalchemy,当我尝试使用SQLALCHEMY升级一个varchar数组时,我遇到了一些问题。 例如,我的输入是: ['Particular','Comercial'] 但在我的数据库中,它显示为: ['[', "'", 'P', 'a', 'r', 't', 'i', 'c', 'u', 'l', 'a', 'r', "'", ',', "'", 'C', 'o', 'm', 'e', 'r', 'c', 'i', 'a', 'l', "'", ']'] 我要更新的烧瓶代码如下: @app.route(
['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)
有人知道为什么会发生这种情况吗?嗨@송기두, 我在尝试您的解决方案时遇到了这个错误:
从None 2020-06-09T02:38:13.048127+00:00应用程序[web.1]:json.decoder.jsondecoderror:Expecting value:line 1 column 2(char 1)
问题是输入必须是这样的:[“special”,“commercial”]
,基本上是双引号。
import json
json.loads(request.form['ciudadesdisp'])
json.loads(request.form['usoauto'])