【问题标题】:How i can update a value of object from api response我如何从 api 响应中更新对象的值
【发布时间】:2017-01-29 16:21:38
【问题描述】:

我对 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
    )

【问题讨论】:

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


    【解决方案1】:
    product_to_update = Products.query.get(product_id)
    

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

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

    所以对于这个特定的产品,价格将会更新。

    【讨论】:

    • 无需将现有实例添加到会话中。
    • 感谢您的信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    相关资源
    最近更新 更多