tmp_app.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import uvicorn as uvicorn
  2. from fastapi import FastAPI
  3. from pydantic.main import BaseModel
  4. from starlette.middleware.cors import CORSMiddleware
  5. from starlette.middleware.sessions import SessionMiddleware
  6. from starlette.responses import JSONResponse
  7. app = FastAPI(title="project name ", description="系统描述 ", version="v 0.0.0")
  8. app.add_middleware(SessionMiddleware, secret_key='123456hhh')
  9. app.add_middleware(
  10. CORSMiddleware,
  11. allow_origins=["*", ],
  12. allow_credentials=True,
  13. allow_methods=["*"],
  14. allow_headers=["*"],
  15. )
  16. @app.exception_handler(Exception)
  17. def validation_exception_handler(request, exc):
  18. """请求校验异常捕获; application/json """
  19. return JSONResponse({'message': "服务器内部错误", 'status_code': 500})
  20. @app.get("/query")
  21. def query(uid: str):
  22. msg = f'uid为{uid}'
  23. return {'success': True, 'msg': msg}
  24. @app.get("/query/{uid}")
  25. def query(uid: str):
  26. msg = f'uid为{uid}'
  27. return {'success': True, 'msg': msg}
  28. @app.get("/test123")
  29. def test123():
  30. # 休眠20秒
  31. import time
  32. time.sleep(8)
  33. return 'ok'
  34. class People(BaseModel):
  35. name: str
  36. age: int
  37. address: str
  38. salary: float
  39. # json body请求
  40. @app.post("/insert")
  41. def insert(people: People):
  42. msg = f"名字:{people.name},年龄{people.age}"
  43. return msg
  44. if __name__ == '__main__':
  45. uvicorn.run(app='tmp_app:app', host="127.0.0.1", port=8000, reload=True, debug=True)
  46. # 启动命令
  47. # pip3 install -r /tmp/request.txt -i https://pypi.douban.com/simple/
  48. # pip3 install uvicorn gunicorn fastapi -i https://pypi.douban.com/simple/
  49. #
  50. # gunicorn tmp_app:app -b 0.0.0.0:8000 -w 4 -k uvicorn.workers.UvicornWorker -D # 不支持linux运行 -w 进程数
  51. # uvicorn tmp_app:app --reload --host 0.0.0.0 --port 8000