我如何从api响应中更新对象的值

时间:2017-01-29 16:21:38

标签: postgresql python-3.x flask flask-sqlalchemy marshmallow

我对Python世界完全陌生,但我正在努力学习这种美丽的语言。但我需要你的帮助。

我有一个API,当用户想要更改有关其产品的任何数据的值时,我想要它,并使用新值更新。

例如:

我有以下产品:

  • Title = DC单板滑雪靴
  • 描述=大家好,我正在销售这款单板滑雪靴 是130英镑的全新
  • 价格= 130英镑

然后用户请求更改例如产品的价格。

完全失去了如何做到这一点。

我更新产品的观点:

import app.utils.responses as resp
from app.api import api
from app.database import db
from app.models.products import Products, ProductsSchema
from app.utils.responses import m_return

@api.route('/product/<product_id>', methods=['PATCH'])
def update_product(product_id):
    # Get products data
    product_to_update = Products.query.get(product_id)
    Products.id = product_to_update
    result = Products.id

    db.session.merge(result)
    db.session.commit()

    # Products schema for some fields.
    products_schema = ProductsSchema(
    only=('id', 'title', 'description', 'post_code', 'product_name',     'is_available', 'created', 'price'))

    # Return item updated.
    return m_return(
        http_code=resp.PRODUCT_UPDATED_SUCCESSFULLY['http_code'],
        message=resp.PRODUCT_UPDATED_SUCCESSFULLY['message'],
        value=products_schema.dump(result).data
    )

1 个答案:

答案 0 :(得分:1)

product_to_update = Products.query.get(product_id)

如果product_id在db中,则此代码返回Products对象,如果是,则可以更新此产品的列:

product_to_update.price = 123#new price
db.session.commit()

因此,对于此特定产品,价格将会更新。