用vscode+FastAPI开发接口(python词频统计)

        上一篇已经完成了词频统计的程序,现在要提供API供调用。有多个web框架可供选择,比如:Django,一个功能丰富的重量级框架(MVT or MVC),连ORM都有。Django能实现web开发的整个技术栈。但就开发一个接口来说有点杀鸡用牛刀。后来查FastAPI。名字都都带API那肯定是适合做接口了。特点有:快速、高效、简单。

        开始,开发工具还是基于vscode

1、安装库:

pip install fastapi

pip install uvicorn

pip install python-multipart

uvicorn暂时理解为服务器

2、创建main.py

import uvicorn as uvicorn
from fastapi import FastAPI
# word是之前实现的词频统计
import word

app = FastAPI()  # 必须实例化该类,启动的时候调用

# 请求根目录
@app.get('/')
def index():
    return {'message': '欢迎来到FastApi 服务!查看接口说明请访问/docs'}
   
# 词频统计,传入字符串
@app.post('/wordcloud')
def wordcloud(string_data):
    return word.wordcloud(string_data)

if __name__ == '__main__':
    uvicorn.run(app=app, host="127.0.0.1", port=11341)

 3、点击调试,创建launch.json文件。默认创建的运行配置文件,没有端口号。默认是8000,我们修改一下。在启动参数上添加--port 参数,指定一下端口号

 运行配置文件是在项目文件夹.vscode目录下,自己创建一个launch.json都可以

launch.json参考配置如下:

其中args中,main是文件名,app是app = FastAPI()

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [

        {
            "name": "Python: FastAPI",

            "type": "python",
            "request": "launch",
            "module": "uvicorn",
            "args": [
                "main:app",
                "--port",
                "11341"
            ],
            "jinja": true
        }
    ]
}

点运行,最终控制台显示启动成功

 浏览器打开上面的地址。

 FastAPI是可以生成接口文档。访问:/docs或/redoc可以看到接口文档说明

可以对接口进行调用,看着眼熟,看标题,是Swagger UI

 最终,我们在百度百科上拷了一段Nginx的介绍,作为参数,调用接口。返回了词频

 问题:

1、有些特殊符号是需要清洗掉的

2、大小写现在是作为2个不同的词来统计的,需要对数据进行预处理。

3、现在停用词不全,需要完善

这是在开发环境下,如果部署到生成环境,除了安装对应的库之外。运行命令:

uvicorn main:app --port 11341 --reload

和在vscode终端显示的一样,本来终端也是调用的类似的命令

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值