fastapi用户系统模块——“添加配置”

@router.post("/config-setting", summary="添加配置")
async def addConfigSetting(*,
                           db: Session = Depends(deps.get_db),
                           u: Users = Depends(deps.user_perm(["system:config-setting:post"])),
                           obj: ConfigSettingSchema,
                           ):
    curd_config_setting.create(db, obj_in=obj, creator_id=u['id'])
    return respSuccessJson()

这段代码是一个基于 FastAPI 的路由处理函数,用于添加配置信息。让我来解释一下:

  1. @router.post("/config-setting", summary="添加配置") 这行代码定义了一个 HTTP POST 请求的路由,它会匹配 /config-setting 这样的 URL 地址,并且给这个路由起了一个简短的描述叫做 “添加配置”。

  2. async def addConfigSetting(*, db: Session = Depends(deps.get_db), u: Users = Depends(deps.user_perm(["system:config-setting:post"]), obj: ConfigSettingSchema) 这是一个异步函数,用来处理 POST 请求。它接受一个名为 obj 的参数,类型为 ConfigSettingSchema,表示要添加的配置信息。同时它也依赖于一个数据库会话 db 和一个用户对象 u

  3. curd_config_setting.create(db, obj_in=obj, creator_id=u['id']) 这行代码调用了一个名为 curd_config_setting.create 的函数,用来向数据库中添加新的配置信息,同时指定了创建者的 ID。

  4. return respSuccessJson() 最后,函数返回一个表示成功的 JSON 响应。

总的来说,这个路由处理函数的作用是接收客户端提交的配置信息,将其添加到数据库中,并返回一个成功的响应。

    def create(self, db: Session, *, obj_in: Union[CreateSchemaType, Dict[str, Any]], creator_id: int = 0) -> ModelType:
        """ 创建 """
        obj_in_data = jsonable_encoder(obj_in, custom_encoder={dict: custom_encoder_dict_fn})
        obj_in_data['creator_id'] = creator_id
        db_obj = self.model(**obj_in_data)  # type: ignore
        db.add(db_obj)
        db.commit()
        db.refresh(db_obj)
        return db_obj

这段代码是一个用于在数据库中创建新条目的方法。让我来解释一下:

  1. def create(self, db: Session, *, obj_in: Union[CreateSchemaType, Dict[str, Any]], creator_id: int = 0) -> ModelType: 这是一个方法定义,它接受一个数据库会话 db,一个名为 obj_in 的参数,类型为 CreateSchemaTypeDict[str, Any],还有一个名为 creator_id 的整数参数,默认值为 0。它返回一个 ModelType 类型的对象。

  2. obj_in_data = jsonable_encoder(obj_in, custom_encoder={dict: custom_encoder_dict_fn}) 这行代码使用了 jsonable_encoder 函数来将 obj_in 转换为可序列化的数据,并且使用了自定义的编码器函数 custom_encoder_dict_fn 来处理字典类型的数据。

  3. obj_in_data['creator_id'] = creator_id 这行代码将 creator_id 赋值给 obj_in_data 中的 creator_id 字段。

  4. db_obj = self.model(**obj_in_data) 这行代码使用 obj_in_data 来创建一个数据库对象。

  5. db.add(db_obj) 这行代码将新创建的数据库对象添加到会话中。

  6. db.commit() 这行代码提交会话,将新创建的对象写入数据库。

  7. db.refresh(db_obj) 这行代码刷新数据库对象,以便获取数据库中的最新状态。

  8. 最后,函数返回新创建的数据库对象。

总的来说,这个方法的作用是根据提供的数据在数据库中创建新的条目,并返回创建的数据库对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值