代码拉取完成,页面将自动刷新
pip install requests
pip install fastapi
pip install jinja2
pip install 'pydantic[email]'
或者
pip install -r requirements.txt
目录说明
├── README.md #项目介绍
├── app
│ ├── __init__.py
│ ├── config # 配置相关
│ │ └── __init__.py
│ ├── constant # 常量相关
│ │ └── __init__.py
│ ├── dao # 封装查询数据的方法
│ │ └── __init__.py
│ ├── dependencies # 封装被依赖函数
│ │ └── __init__.py
│ ├── middleware # 中间件
│ │ └── __init__.py
│ ├── models # 数据模型文件,和表结构对应
│ │ └── __init__.py
│ ├── router # 路由也可以理解controller
│ │ ├── __init__.py
│ │ ├── default_router.py # 默认接口
│ │ └── demo_router.py # 演示接口
│ ├── parameter # 声明参数对应的Pydantic模型
│ │ └── __init__.py
│ ├── service # 就具体业务实现逻辑
│ │ └── __init__.py
│ └── utils # 工具类
│ ├── __init__.py
│ └── str_util.py
├── main.py # 主文件
├── requirements.txt #依赖文件
├── tests # 单元测试目录
├── __init__.py
└── local_test.py
init.py文件的作用:
标识包目录: 当Python解释器遇到一个目录中包含 init.py 文件时,它会将该目录识别为一个包。这样可以通过导入包的方式来组织和访问模块。 在Python3中,init.py 不再是创建包的唯一方式 初始化包:init.py 文件在包被导入时会被执行,可以用于初始化包级别的变量、设置环境或执行其他必要的初始化操作。 命名空间包含: 通过在 init.py 中定义变量、函数或类,可以将它们添加到包的命名空间中,使得在导入包时可以直接访问这些元素。 避免名称冲突: 如果包目录中有与包同名的模块,导入包时可能会出现冲突。init.py 可以通过定义__all__变量来控制导入时的名称空间。 python # init.py all = ['module1', 'module2']
这样导入包时,只有在 all 中列出的模块会被导入,避免了潜在的名称冲突
# 项目目录下,使用uvicorn启动
➜ uvicorn main:server
INFO: Started server process [36375]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
# 使用python
➜ python main.py --env prod
INFO: Started server process [36468]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。