一、项目结构图
-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
本文由 admin 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Jul 29, 2020 at 08:14 pm