项目 01 - 新建项目

发布时间 2023-12-25 23:09:56作者: dack_deng

1. 新建项目结构

首先,创建如下结构的项目的文件,在项目跟路径下,创建主程序main.py文件。

1.routers 目录开发对应模块功能的接口
2.modles.py创建数据库模型
3.database.py 创建 SQLAlchemy 连接数据库
4.static放一下静态文件
5.template是模版文件夹,前后端不分离的时候用的较多,现在都是前后端分离的项目,所以可以删掉

在app目录的__init__.py文件中,写工厂函数,如下。这里面可以挂载资源,以及注册路由。

# app/__init__.py

from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from apps.routers import view_login, view_project

def create_app():
    """工厂函数"""
    app = FastAPI()

    # 挂载静态资源
    app.mount("/static", StaticFiles(directory="./static"), name="static")
    # 注册路由
    app.include_router(view_login.router, prefix="/api/v1", tags=["登陆注册"])
    app.include_router(view_project.router, prefix="/api/v1", tags=["项目"])

    return app

注册的路由函数,我们在app文件夹中,新建router目录,用来写每个接口函数。

# app/router/view_login.py

from fastapi import APIRouter
from pydantic import BaseModel

router = APIRouter()

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

@router.post("/login")
async def login_demo():
    return {"msg": "login success!"}
# app/router/view_project.py

from fastapi import APIRouter, Depends

router = APIRouter()

@router.post("/project")
async def create_project_demo():
    return {"msg": "login success!"}

@router.get("/register")  
async def get_all_demo():
    return {"msg": "success!"}

写完接口函数,并且在工厂函数中进行了注册路由后,在main.py中,进行运行。

from apps import create_app
import uvicorn

app = create_app()

if __name__ == '__main__':
    uvicorn.run(app="main:app", host='0.0.0.0', port=8080, reload=True)