Fastapi教程二:项目妹子图(1)-项目构建

in fastapi with 6308 comments

一、项目结构图

-meizitu
--apps
----users
----artcle
--core
--extensions
--static
--templates
--main.py

主文件夹meizitu. 下面包含apps【users,artcle】文件夹,core文件夹存放fastapi 构建app等文件,extensions文件夹放自己写的或者别人的插件,static静态文件,templates HTML模板文件, 其实静态文件和模板文件我们用不上,因为我们是构建后端API,这里列出来,也会讲解下,MVC模式怎么做。 main.py是入口文件。

二、编写核心文件
在core文件夹下新增__init__.py文件: 【如果使用MVC模板引擎,需要安装jinja2】
core/__init__.py:

from fastapi import FastAPI
from starlette.middleware.cors import CORSMiddleware
from starlette.templating import Jinja2Templates
from starlette.staticfiles import StaticFiles

templates = Jinja2Templates(directory="templates")
#为了方便介绍模板引擎,我们这里创建类似django的render函数,
def render(html, *args, **kwargs):
    return templates.TemplateResponse(html, *args, **kwargs)  


def get_app() -> FastAPI:
    app = FastAPI()
    app.debug = True
    app.mount("/static", StaticFiles(directory="static"), name="static")
    #加载静态文件 
    # middleware 
    app.add_middleware( CORSMiddleware, allow_origins=["*"],  allow_credentials=True,  allow_methods=["*"], allow_headers=["*"],  ) 
    return app

核心app已经构建好了,可以在main.py中调用,初始化fastapi
main.py:

import uvicorn
from core import get_app

app = get_app()

#加载user路由.这里因为没有创建,暂时注释,后续我们会说到。
#app.include_router(users_router, prefix="/users")
if __name__ == "__main__":
    uvicorn.run(app="main:app", host="0.0.0.0", port=3200, reload=True, debug=True)

OK,这样基本的骨架已经搭建好了,下一节,我们讲解,fastapi数据库-ORM

Comments are closed.