最近在学习php处理表单的问题的时候想调用接口返回参数,突然想要是能使用python写接口那该有多方便呀!不搜不知道一搜吓一跳,找到个超好用的基于python的web框架——FastAPI
Ⅰ.FastAPI安装下载
前提先安装好宝塔环境,然后在安装python管理插件
随后在版本管理处安装好python版本(至少需要3.6+以上的环境)
安装后pthon之后需要创建一个环境,创建项目文件夹,然后在里面添加一个main.py文件,里面写上:
from typing import Union
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
return {"item_id": item_id, "q": q}
之后重新打开python管理器的设置,添加一个项目,填写方式如下:
需要注意的是路径为项目的路径,启动文件夹为刚刚创建的main.py文件夹,端口自定(需要注意设定的端口是否被占用)
点击确认,会执行安装程序,如果安装到中途显示找不到requirements.txt,那么在你的项目文件夹创建一个requirements.txt文件再重新安装即可
接下来,我们需要打开linux控制台,进入刚刚创建的项目文件夹,安装fastapi(当然你也可以直接在python项目管理器里面安装模块,但是我在这里必须先让大家理解其项目结构!)
在控制台输入命令进入你的项目位置(比如我的是在 cd /www/wwwroot/ 项目名称 里面),然后输入ls查看你python虚拟环境的名称
之后以我的python虚拟环境名,我们在项目文件夹里面执行如下命令:
./0ac432769d04b3ee8b599391dd60b53d_venv/bin/pip install fastapi
./0ac432769d04b3ee8b599391dd60b53d_venv/bin/pip install "uvicorn[standard]"
./0ac432769d04b3ee8b599391dd60b53d_venv/bin/pip freeze > requirements.txt
至此,宝塔面板安装FastAPI完成!
Ⅱ.启动FastAPI并保存运行
首先我们需要创建多一个控制台来保持Python的运行
安装screen
yum install screen
创建新窗口
screen -S 窗口名称
在新窗口运行:(开启服务)
./0ac432769d04b3ee8b599391dd60b53d_venv/bin/uvicorn main:app --reload
之后这个窗口就会持续运行了
最后,我们回到python项目管理器,将我们的域名映射上去,再进去看,是不是就成功返回HelloWorld了!
Ⅲ.小结
使用FastAPI构建web框架真的是非常方便,能让你少写非常多的代码,学习它的用法,你可以参考官方文档,或是我觉得不错的这篇文章~
Ⅳ.其他
Screen的用法:
新建窗口:screen -S 窗口名称/代号
列出所有窗口:screen -ls
重新连接窗口:screen -r 窗口名称/代号(前提是你需要在上一条命令中看到此窗口为 Detached 状态)
退出当前窗口:screen -d (可以让窗口状态变为 Detached)
删除指定的窗口:screen -X -S 窗口名称/代号 quit
requirements.txt 文件解释
requirements.txt这个名字是约定俗成的名字,在宝塔中必须有它才能创建我们的项目,文件中记录着我们项目的文件依赖,当以后我们如果需要在一个新的Python环境中引入当前的依赖,只需要使用 pip install -r requirements.txt 即可
Comments | NOTHING