Как я могу динамически обновлять поле программно, указав имя столбца в Flask -SQLAlchemy
У меня есть класс с именем PTc
У него всегда будет только одна длинная строка, поэтому я могу вытащить все информация возвращается со следующим:
Target = PTc.query.order_by(PTc.id).first()
Я могу вручную обновить поле, например, Target.price = 2
, затем зафиксировать.
Как я могу обновлять динамически? т.е. когда программа запускается, она может захотеть обновить цену, количество или доступность в зависимости от условия.
Если я сохраню имя столбца в переменной, columnToUpdate = 'amount'
, а затем попробуйте Target.columnToUpdate = 10
, это, конечно, не удастся потому что он думает, что это столбец.
В противном случае я вынужден проверять состояние каждого, которое может стать громоздким из-за большого количества столбцов, т.е.
if columnToUpdate == 'price'
Target.price = 20
elif columnToUpdate =='amount':
Target.amount = 20
...
elif columnToUpdate =='XYZ':
Target.amount = ABC
Я просматривал документацию который только определяет, вставляет, удаляет и выбирает с минимальными деталями.
Дополнение - класс выглядит следующим образом.
class PTc(db.Model):
# id column
id = db.Column(db.Integer, primary_key=True)
goldPrice = db.Column(db.Integer, nullable=False)
goldStock = db.Column(db.Integer, nullable=False)
goldPriceChange = db.Column(db.String(50), nullable=False)
goldHistory = db.Column(db.String(100), nullable=False)
goldAverage = db.Column(db.Integer, nullable=False)
rmPrice = db.Column(db.Integer, nullable=False)
rmStock = db.Column(db.Integer, nullable=False)
rmPriceChange = db.Column(db.String(50), nullable=False)
rmHistory = db.Column(db.String(100), nullable=False)
rmAverage = db.Column(db.Integer, nullable=False)
gemsPrice = db.Column(db.Integer, nullable=False)
gemsStock = db.Column(db.Integer, nullable=False)
gemsPriceChange = db.Column(db.String(50), nullable=False)
gemsHistory = db.Column(db.String(100), nullable=False)
gemsAverage = db.Column(db.Integer, nullable=False)
oilPrice = db.Column(db.Integer, nullable=False)
oilStock = db.Column(db.Integer, nullable=False)
oilPriceChange = db.Column(db.String(50), nullable=False)
oilHistory = db.Column(db.String(100), nullable=False)
oilAverage = db.Column(db.Integer, nullable=False)
Большое спасибо