python 项目相关

python 项目相关

python -m venv venv

这条命令的作用是,在当前路径下 生成一个 venv 文件夹,并运行 python 的 venv 模块,用于依赖隔离。

  • 命令执行后,会在当前文件下 生成一个 venv/ 的文件夹
    python -m venv venv

  • python 当前环境的 python 解释器

  • -m venv 运行 python 的 venv 模块 ( -m xxx 运行 python 的 xxx 模块)

  • venv 虚拟环境目录名,主要用于区分不同项目,可以随意起。

复制代码
venv/
├── bin/            # 可执行文件(macOS / Linux)
│   ├── python
│   ├── pip
│   └── activate
├── lib/
│   └── python3.x/
│       └── site-packages/
├── include/
└── pyvenv.cfg

source venv/bin/activate 虚拟环境激活

bash 复制代码
source venv/bin/activate

# 激活成功
(venv) $

which python 查看 python 指向的虚拟环境

bash 复制代码
which python

安装依赖只会影响当前项目

bash 复制代码
pip install requests

安装到 venv/lib/python3.x/site-packages/

deactivate 退出虚拟环境

bash 复制代码
deactivate

pip list 快速查看当前项目的 python 依赖

Fastapi 项目启动

写一个最小服务

python 复制代码
from fastapi import FastAPI
app = FastAPI()

@app.get('/health')
def health_check():
    return {status:'ok',content:'hello world'}

项目启动

bash 复制代码
uvicorn main:app --reload

页面访问

服务启动后可以访问的地址:

Pydantic 数据模型

pydantic 会对输入的变量类型进行约束,如果不符合定义的变量类型,就会报如下错误

复制代码
{
    "detail": [
        {
            "type": "string_type",
            "loc": [
                "body",
                "name"
            ],
            "msg": "Input should be a valid string",
            "input": 123
        },
        {
            "type": "int_parsing",
            "loc": [
                "body",
                "age"
            ],
            "msg": "Input should be a valid integer, unable to parse string as an integer",
            "input": "asdf"
        }
    ]
}
python 复制代码
from pydantic import BaseModel

class greetUserRequestModel(BaseModel):
    name: str
    age: int


class greetUserResponseModel(BaseModel):
    message: str
    age_in_5_years: int


@app.post("/greet", response_model=greetUserResponseModel)
def greet_user(request: greetUserRequestModel):
    message = f"Hello, {request.name}!"
    age_in_5_years = request.age + 5
    return greetUserResponseModel(message=message, age_in_5_years=age_in_5_years)
相关推荐
Q26433650237 小时前
【有源码】基于 Hadoop 生态的化妆品销售数据存储分析与可视化 面向化妆品行业的用户画像构建与销售机会识别研究
大数据·hadoop·python·机器学习·spark·毕业设计·课程设计
2601_9620781913 小时前
Python中calendar.weekday用法
python·编程技巧·calendar·日期处理·weekday
2601_9622186113 小时前
万象生鲜系统业财一体化底层打通技术自动生成经营账单
大数据·数据库·人工智能·python·算法
2601_9669496513 小时前
为什么量化策略需要大量历史股票数据?从回测可信度理解数据规模
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
niucloud-admin13 小时前
JAVA V6 多商户商城 开发文档——插件目录结构
java·开发语言
2601_9628857213 小时前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
滕州市燕猫虎计算机科技工作室个体工商户13 小时前
Java锁
java·开发语言
李高钢13 小时前
Python FastAPI 框架入门:从零搭建你的第一个高性能 API 服务
数据库·python·fastapi
多加点辣也没关系13 小时前
JavaScript|第31章:表单与控件
开发语言·javascript·ecmascript
菜鸟~noob23314 小时前
【电子战】 第09篇:阵列信号处理——波束形成、MVDR、MUSIC【含matlab代码】
开发语言·matlab·信号处理