【python】多文件开发接口文件之间相互调用

一、文件目录(忽略红色的错误信息,vscode敲的)
在这里插入图片描述
api是接口文件夹
app.py是接口汇总文件
methods文件夹里面的是接口文件
config文件夹是配置文件
main.py是启动文件

config.py

'''
  配置文件
'''
SERVER_PORT = '8000'

main.py

from config.config import SERVER_PORT
import uvicorn
from api.app import app #只引入app.py

if __name__ == '__main__':
    uvicorn.run(
      app=app, 
      host="127.0.0.1", 
      port=SERVER_PORT, 
      reload=True, 
      debug=True)

app.py

from fastapi import FastAPI,Header
from typing import Optional
from pydantic import BaseModel
app = FastAPI()

# 此处这么引入,是需要在__init__.py配置的
from api.methods import * 
# 否则如下引入
from api.methods.a import * 
from api.methods.b import * 
from api.methods.c import * 

__init__.py

# 配置此行代码,from api.methods import * 会引入__all__里面的文件
__all__ = ['a','b','c']

a.py

# 将app.py的app等模块带过来
from api.app import app,Header,Optional,BaseModel


@app.get("/test/{name}")
async def test(name,Authorization: Optional[str] = Header(None)):
    return {"name": name, "Authorization":Authorization} 

@app.get("/hello/{name}")
async def hello(name):
    return {"hello": name} 

b.py

# 将app.py的app等模块带过来
from api.app import app,Header,Optional,BaseModel

@app.get("/detail")
async def detail(skip, limit):
    return {
        "skip": skip,
        "limit":limit 
        }

c.py

# 将app.py的app等模块带过来
from api.app import app,Header,Optional,BaseModel

class data(BaseModel):
  username: str
  password: str


@app.post("/login")
async def hello(res:data):
    if res.username == "mosowe" and res.password == "123456":
      return {"hello": res.username} 
    else:
      return {"sorry": "error"} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mosowe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值