【工程实践】使用FastAPI进阶

1.服务端

        使用pydantic对输入文本进行校验,是否符合输入规则。

import json
import requests
import re
from fastapi import FastAPI, HTTPException, Request,Query
from fastapi.responses import JSONResponse, Response, StreamingResponse
import logging
import uvicorn
from pydantic import BaseModel
# 定义一个数据模型,用于接收和验证请求体中的数据
class DataModel(BaseModel):
    sentence: str
# http接口服务
app=FastAPI()
...
...

@app.post("/v1/Customer_Profile")
async def process_data(data: DataModel):
  #现在data是一个DataModel实例,你可以访问它的属性
  sentence = data.sentence
  if sentence is None:
    raise HTTPException(status_code=400, detail="Sentence query parameter is required")
  ...
  ...
  #启动fastapi服务
  uvicorn.run(app,
                host=None,
                port=19529,
                log_level="debug")

2.客户端

        客户端将请求数据封装在body中,可以避免将参数拼接到访问链接中,造成访问链接过长报错的风险。

import requests
import json
def Cus_pro(sentence):
    url = "http://0.0.0.0:19529/v1/Customer_Profile"
    data = {
        "sentence": sentence,
    }
    headers = {'Content-Type': 'application/json'}
    response = requests.post(url, data=json.dumps(data), headers=headers)

    # 检查响应状态码
    if response.status_code == 200:
        print("Success")
        return response.json()
    else:
        print("Error", response.text)
        return response.status_code
        

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值