添加代码

This commit is contained in:
qiangyanwen 2022-05-26 09:36:22 +08:00
parent 545fd6554d
commit 91c977fc16
5 changed files with 124 additions and 0 deletions

6
app.py
View File

@ -5,4 +5,10 @@
# @File :app.py # @File :app.py
from fastapi import FastAPI from fastapi import FastAPI
from router import routers from router import routers
from fastapi import status
from fastapi.responses import JSONResponse
from fastapi.encoders import jsonable_encoder
import uvicorn
from config import Debug

View File

@ -3,3 +3,22 @@
# @Email :508737091@qq.com # @Email :508737091@qq.com
# @Author :qiangyanwen # @Author :qiangyanwen
# @File :__init__.py.py # @File :__init__.py.py
import yaml, os
from yaml import CLoader as Loader
from utils.system import system
from entity.setting_entity import SettingModel
from config.log import logger
Debug = os.getenv("DEBUG", True)
platforms = ["darwin", "win32", "win64"]
if system in platforms:
# 启动开发环境
logger.info("start the automation service development environment")
config_file = "application_dev.yaml"
else:
# 启动生产环境
logger.info("start the automation service production environment")
config_file = "application_prod.yaml"
logger.info("loading environment configuration file")
project_path = os.path.dirname(os.path.realpath(__file__))
settings = SettingModel(**yaml.load(open(os.path.join(project_path, config_file)), Loader))

5
entity/__init__.py Normal file
View File

@ -0,0 +1,5 @@
# _*_ coding: utf-8 _*_
# @Time :2022/5/26 09:31
# @Email :508737091@qq.com
# @Author :qiangyanwen
# @File :__init__.py.py

60
entity/setting_entity.py Normal file
View File

@ -0,0 +1,60 @@
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
File Name setting_entity
Description :
Author : qiangyanwen
date 2022/1/14
-------------------------------------------------
"""
from datetime import datetime
from pydantic import BaseModel
from typing import List
class MysqlModel(BaseModel):
USERNAME: str
PASSWORD: str
HOST: str
PORT: int
DATABASE: str
class RedisModel(BaseModel):
HOST: str
PASSWORD: str
DB: int
PORT: int
TIMEOUT: int
class ProjectModel(BaseModel):
DEBUG: bool
PORT: int
BASE_PATH: str
class DataBaseModel(BaseModel):
Mysql: MysqlModel
class SwaggerModel(BaseModel):
TITLE: str
DESCRIPTION: str
DOCS_URL: str
REDOC_URL: str
class AccessModel(BaseModel):
ACCESS_TOKEN_EXPIRE_MINUTES: int
ALGORITHM: str
SECRET_KEY: str
class SettingModel(BaseModel):
PROJECT: ProjectModel
SWAGGER: SwaggerModel
ACCESS: AccessModel
DATABASE: DataBaseModel

34
utils/system.py Normal file
View File

@ -0,0 +1,34 @@
# _*_ coding: utf-8 _*_
# @Time :2022/5/26 09:33
# @Email :508737091@qq.com
# @Author :qiangyanwen
# @File :system.py
import socket
import sys
from _yaml import yaml
def get_host_ip():
"""
查询本机ip地址
:return:
"""
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
s.connect(('8.8.8.8', 80))
ip = s.getsockname()[0]
finally:
s.close()
return ip
def current_platform():
return sys.platform
system = current_platform()
host = get_host_ip()
__all__ = ["system", "host"]