Q-Logo 我的学习笔记分享

Entries for date "2021"

用Nuitka将Fastapi应用打包成exe

main.py内容如下:

from typing import Optional

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: Optional[str] = None):

return {"item_id": item_id, "q": q}

if __name__=='__main__':

import uvicorn

uvicorn.run(app, host="0.0.0.0", port=8000)

在main.py所在目录中打开命令行窗口,执行如下Nuitka打包命令:

python -m nuitka --standalone --mingw64 --show-memory --show-progress --nofollow-imports --include-package=uvicorn --include-package=click --include-package=h11 --include-package=starlette --include-package=fastapi --output-dir=o main.py

等待几分钟,即可打包完成。打包后会生成o/main.dist 目录,双击此目录下的main.exe即可启动FastAPI服务。服务启动后,在浏览器访问http://localhost:8000/,可查看到响应字符串

{"Hello":"World"}

用Python开启Http服务

Python 版本是2.6或2.7

python -m SimpleHTTPServer 8000

Python 版本是3.0或更高:

python -m http.server 8000

用上述方式开启服务后,访问http://IP:8000,可以查看到运行命令的目录中的文件和子目录,点击文件可以下载文件,相当于提供了一个文件下载服务。

如果在运行命令的目录中,提供一个index.html文件,那么访问http://IP:8000,就会打开这个index.html文件。