FastAPI中的会话

我想用 FastAPI 和 Jinja 作为我的模板构建一个购物车所以我需要在会话中为每个匿名用户保存数据。Django 和 flask 有一个内置的会话函数,我们可以很容易地做到。

我想用 FastAPI 和 Jinja 作为我的模板构建一个购物车
所以我需要在会话中为每个匿名用户保存数据。
Django 和 flask 有一个内置的会话函数,我们可以很容易地做到。

6

首先,我们应该在购物车应用程序中创建购物车文件,然后使用所需的功能构建购物车类。

secret_key='cart'
class Cart(object):
    def __init__(self, request,db):
        self.session = request.session
        cart = self.session.get(secret_key)
        if not cart:
            # save an empty cart in the session
            cart = self.session[secret_key] = {}
        self.cart = cart
    def add(self, product, quantity=1, update_quantity=False):
        product_id = str(product.id)
        if product_id not in self.cart:
            self.cart[product_id] = {'quantity': 0,
                                 'price': str(product.price)
                                 }
        if update_quantity:
            self.cart[product_id]['quantity'] = quantity
        else:
            self.cart[product_id]['quantity'] += quantity

那么我们应该创建 cart_add API:

@app.post("/add")
def cart_add(request: Request,db: Session = Depends(get_db), id: int=Form(...), quantity: int=Form(...),
         update:bool=Form(...)):
    cart=Cart(request,db)
    product=db.query(models.Product).filter(models.Product.id == id).first()
    cart.add(product=product, quantity=quantity, update_quantity=update)
    return RedirectResponse(url="/cart", status_code=status.HTTP_303_SEE_OTHER)

就是这样。我们通过 fastapi.Request.session 内置函数在会话中保存了匿名用户的购物车,它将把我们的数据保存在 cookie 中。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(354)
SwiftUI:ForEach筛选器布尔值
上一篇
IBMDataStageDesigner窗口被隐藏
下一篇

相关推荐

  • android api文档中文版下载:Android API参考文档

    Android API文档中文版可以在官方网站上下载,具体步骤如下:访问Android官网:https://.android.google.cn/…

    2023-03-31 05:39:50
    0 60 85
  • postman 网页版:使用 Postman 测试 API 接口

    示例示例Postman 网页版是一款强大的 API 开发工具,它提供了一个简单易用的界面,可以让开发者快速测试和调试 API 接口。Postman 网页版支持多种 HTTP 请求方法,包括 GET、POST、PUT、DELETE、PATCH 等,还支持多种格式的参数,如 JSON、XML、form-data 等,可以非常方便地进行 API 测试。…

    2023-04-28 00:30:59
    0 82 30
  • 僵尸毁灭工程服务器:如何从android模拟器对kik的服务器API进行反向工程

    关于僵尸毁灭工程服务器的问题,在bluestacks kik中经常遇到,我在kik messenger中有一个群组聊天,已经有 50 多个成员。我需要自动执行一些操作,例如基于参与度的声誉点,以及踢那些在 XXX 天内没有发布任何内容的非活动成员。我看过API reference,似乎可以在组中与机器人进行交互的唯一方法是使用 @ mentions。这意味着我们无法将它们添加到组中,并且它们也无法监视。…

    2022-12-29 01:22:13
    0 94 20
  • 申请法院强制执行的程序:对AWS控制台登录强制执行MFA 但不对API调用强制执行

    关于申请法院强制执行的程序的问题,在aws consle中经常遇到,我希望强制所有 IAM 用户(本地和远程)启用和激活他们的 MFA 设备。…

    2022-12-19 05:47:01
    0 36 76
  • 农村合作医疗小程序:AndroidWear:从应用程序获取医疗参数的 API

    关于农村合作医疗小程序的问题,在oxygen app for android中经常遇到,我想知道是否有一种方法可以在 Android 应用程序中从能够测量的 Android Wear 设备下载医疗参数。具体来说,我会特别感兴趣的是获取心率,血氧饱和度和 amp;体温。…

    2022-12-28 10:54:58
    0 65 75
  • 嗅探Android应用程序以查找APIURL

    我很好奇,我怎么能弄清楚一个 Android 应用程序 (我已经安装的任何应用程序) 使用的 API URL,如果它使 API 调用一些在线服务器 (例如 RESTful 服务)。我想我必须捕获设备上的数据包,也许在 Wireshark 或其他东西中分析它们以找到 URL?…

    2022-11-25 04:14:26
    0 46 71
  • 如何从谷歌静态地图Api卫星图像获取日期信息

    使用 Google 静态地图 API 下载卫星图像时,是否还有一种方法可以获取一些元数据,例如何时(年,月,日)拍摄卫星图像?…

    2022-12-17 04:43:37
    0 70 13
  • .asSet(...)是否存在于任何API中

    我正在寻找一个非常简单的方法来创建一个集。…

    2022-11-11 15:18:25
    0 10 77

发表评论

登录 后才能评论

评论列表(51条)