项目初次提交
This commit is contained in:
0
application/__init__.py
Normal file
0
application/__init__.py
Normal file
0
application/config/__init__.py
Normal file
0
application/config/__init__.py
Normal file
63
application/config/development.py
Normal file
63
application/config/development.py
Normal file
@ -0,0 +1,63 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# @version : 1.0
|
||||
# @Create Time : 2021/10/19 15:47
|
||||
# @File : development.py
|
||||
# @IDE : PyCharm
|
||||
# @desc : 数据库生产配置文件
|
||||
|
||||
|
||||
"""
|
||||
Mysql 数据库配置项
|
||||
连接引擎官方文档:https://www.osgeo.cn/sqlalchemy/core/engines.html
|
||||
数据库链接配置说明:mysql+asyncmy://数据库用户名:数据库密码@数据库地址:数据库端口/数据库名称
|
||||
"""
|
||||
SQLALCHEMY_DATABASE_URL = "mysql+asyncmy://root:root@127.0.0.1:3306/kinit"
|
||||
|
||||
|
||||
"""
|
||||
Redis 数据库配置
|
||||
格式:"redis://:密码@地址:端口/数据库名称"
|
||||
"""
|
||||
REDIS_DB_ENABLE = True
|
||||
REDIS_DB_URL = "redis://:sdust2020@127.0.0.1:6379/0"
|
||||
|
||||
"""
|
||||
MongoDB 数据库配置
|
||||
格式:mongodb://用户名:密码@地址:端口/?authSource=数据库名称
|
||||
"""
|
||||
MONGO_DB_ENABLE = False
|
||||
MONGO_DB_NAME = "kinit"
|
||||
MONGO_DB_URL = f"mongodb://kinit:123456@177.8.0.6:27017/?authSource={MONGO_DB_NAME}"
|
||||
|
||||
|
||||
"""
|
||||
阿里云对象存储OSS配置
|
||||
阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
|
||||
yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
|
||||
* [accessKeyId] {String}:通过阿里云控制台创建的AccessKey。
|
||||
* [accessKeySecret] {String}:通过阿里云控制台创建的AccessSecret。
|
||||
* [bucket] {String}:通过控制台或PutBucket创建的bucket。
|
||||
* [endpoint] {String}:bucket所在的区域, 默认oss-cn-hangzhou。
|
||||
"""
|
||||
ALIYUN_OSS = {
|
||||
"accessKeyId": "accessKeyId",
|
||||
"accessKeySecret": "accessKeySecret",
|
||||
"endpoint": "endpoint",
|
||||
"bucket": "bucket",
|
||||
"baseUrl": "baseUrl"
|
||||
}
|
||||
|
||||
"""
|
||||
获取IP地址归属地
|
||||
文档:https://user.ip138.com/ip/doc
|
||||
"""
|
||||
IP_PARSE_ENABLE = False
|
||||
IP_PARSE_TOKEN = "IP_PARSE_TOKEN"
|
||||
|
||||
|
||||
datasets_url = f'D:\syg\yolov5\datasets'
|
||||
runs_url = f'D:\syg\yolov5\runs'
|
||||
detect_url = f'D:\syg\yolov5\detect'
|
||||
yolo_url = f'D:\syg\workspace\aicheckv2\yolov5'
|
||||
|
||||
images_url = f'D:\syg\images'
|
61
application/config/production.py
Normal file
61
application/config/production.py
Normal file
@ -0,0 +1,61 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# @version : 1.0
|
||||
# @Create Time : 2021/10/19 15:47
|
||||
# @File : production.py
|
||||
# @IDE : PyCharm
|
||||
# @desc : 数据库开发配置文件
|
||||
|
||||
|
||||
"""
|
||||
Mysql 数据库配置项
|
||||
连接引擎官方文档:https://www.osgeo.cn/sqlalchemy/core/engines.html
|
||||
数据库链接配置说明:mysql+asyncmy://数据库用户名:数据库密码@数据库地址:数据库端口/数据库名称
|
||||
"""
|
||||
SQLALCHEMY_DATABASE_URL = "mysql+asyncmy://root:123456@177.8.0.7:3306/kinit"
|
||||
|
||||
"""
|
||||
Redis 数据库配置
|
||||
格式:"redis://:密码@地址:端口/数据库名称"
|
||||
"""
|
||||
REDIS_DB_ENABLE = True
|
||||
REDIS_DB_URL = "redis://:123456@177.8.0.5:6379/1"
|
||||
|
||||
"""
|
||||
MongoDB 数据库配置
|
||||
格式:mongodb://用户名:密码@地址:端口/?authSource=数据库名称
|
||||
"""
|
||||
MONGO_DB_ENABLE = True
|
||||
MONGO_DB_NAME = "kinit"
|
||||
MONGO_DB_URL = f"mongodb://kinit:123456@177.8.0.6:27017/?authSource={MONGO_DB_NAME}"
|
||||
|
||||
|
||||
"""
|
||||
阿里云对象存储OSS配置
|
||||
阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
|
||||
yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
|
||||
* [accessKeyId] {String}:通过阿里云控制台创建的AccessKey。
|
||||
* [accessKeySecret] {String}:通过阿里云控制台创建的AccessSecret。
|
||||
* [bucket] {String}:通过控制台或PutBucket创建的bucket。
|
||||
* [endpoint] {String}:bucket所在的区域, 默认oss-cn-hangzhou。
|
||||
"""
|
||||
ALIYUN_OSS = {
|
||||
"accessKeyId": "accessKeyId",
|
||||
"accessKeySecret": "accessKeySecret",
|
||||
"endpoint": "endpoint",
|
||||
"bucket": "bucket",
|
||||
"baseUrl": "baseUrl"
|
||||
}
|
||||
|
||||
"""
|
||||
获取IP地址归属地
|
||||
文档:https://user.ip138.com/ip/doc
|
||||
"""
|
||||
IP_PARSE_ENABLE = False
|
||||
IP_PARSE_TOKEN = "IP_PARSE_TOKEN"
|
||||
|
||||
datasets_url = f'/home/aicheckv2/yolov5/datasets'
|
||||
runs_url = f'/home/aicheckv2/yolov5/runs'
|
||||
detect_url = f'/home/aicheckv2/yolov5/detect'
|
||||
yolo_url = f'/home/aicheckv2/backend/yolov5'
|
||||
|
||||
images_url = f'/home/aicheckv2/images'
|
150
application/settings.py
Normal file
150
application/settings.py
Normal file
@ -0,0 +1,150 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# @version : 1.0
|
||||
# @Create Time : 2021/10/19 15:47
|
||||
# @File : settings.py
|
||||
# @IDE : PyCharm
|
||||
# @desc : 主配置文件
|
||||
|
||||
import os
|
||||
from fastapi.security import OAuth2PasswordBearer
|
||||
|
||||
"""
|
||||
系统版本
|
||||
"""
|
||||
VERSION = "3.10.1"
|
||||
|
||||
"""安全警告: 不要在生产中打开调试运行!"""
|
||||
DEBUG = True
|
||||
|
||||
"""是否开启演示功能:取消所有POST,DELETE,PUT操作权限"""
|
||||
DEMO = False
|
||||
"""演示功能白名单"""
|
||||
DEMO_WHITE_LIST_PATH = [
|
||||
"/auth/login",
|
||||
"/auth/token/refresh",
|
||||
"/auth/wx/login",
|
||||
"/vadmin/system/dict/types/details",
|
||||
"/vadmin/system/settings/tabs",
|
||||
"/vadmin/resource/images",
|
||||
"/vadmin/auth/user/export/query/list/to/excel"
|
||||
]
|
||||
"""演示功能黑名单(触发异常 status_code=403),黑名单优先级更高"""
|
||||
DEMO_BLACK_LIST_PATH = [
|
||||
"/auth/api/login"
|
||||
]
|
||||
|
||||
"""
|
||||
引入数据库配置
|
||||
"""
|
||||
if DEBUG:
|
||||
from application.config.development import *
|
||||
else:
|
||||
from application.config.production import *
|
||||
|
||||
"""项目根目录"""
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
"""
|
||||
是否开启登录认证
|
||||
只适用于简单的接口
|
||||
如果是与认证关联性比较强的接口,则无法使用
|
||||
"""
|
||||
OAUTH_ENABLE = True
|
||||
"""
|
||||
配置 OAuth2 密码流认证方式
|
||||
官方文档:https://fastapi.tiangolo.com/zh/tutorial/security/first-steps/#fastapi-oauth2passwordbearer
|
||||
auto_error:(bool) 可选参数,默认为 True。当验证失败时,如果设置为 True,FastAPI 将自动返回一个 401 未授权的响应,如果设置为 False,你需要自己处理身份验证失败的情况。
|
||||
这里的 auto_error 设置为 False 是因为存在 OpenAuth:开放认证,无认证也可以访问,
|
||||
如果设置为 True,那么 FastAPI 会自动报错,即无认证时 OpenAuth 会失效,所以不能使用 True。
|
||||
"""
|
||||
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/auth/api/login", auto_error=False) if OAUTH_ENABLE else lambda: ""
|
||||
"""安全的随机密钥,该密钥将用于对 JWT 令牌进行签名"""
|
||||
SECRET_KEY = 'vgb0tnl9d58+6n-6h-ea&u^1#s0ccp!794=kbvqacjq75vzps$'
|
||||
"""用于设定 JWT 令牌签名算法"""
|
||||
ALGORITHM = "HS256"
|
||||
"""access_token 过期时间,一天"""
|
||||
ACCESS_TOKEN_EXPIRE_MINUTES = 1440
|
||||
"""refresh_token 过期时间,用于刷新token使用,两天"""
|
||||
REFRESH_TOKEN_EXPIRE_MINUTES = 1440 * 2
|
||||
"""access_token 缓存时间,用于刷新token使用,30分钟"""
|
||||
ACCESS_TOKEN_CACHE_MINUTES = 30
|
||||
|
||||
"""
|
||||
挂载临时文件目录,并添加路由访问,此路由不会在接口文档中显示
|
||||
TEMP_DIR:临时文件目录绝对路径
|
||||
官方文档:https://fastapi.tiangolo.com/tutorial/static-files/
|
||||
"""
|
||||
TEMP_DIR = os.path.join(BASE_DIR, "temp")
|
||||
|
||||
"""
|
||||
挂载静态目录,并添加路由访问,此路由不会在接口文档中显示
|
||||
STATIC_ENABLE:是否启用静态目录访问
|
||||
STATIC_URL:路由访问
|
||||
STATIC_ROOT:静态文件目录绝对路径
|
||||
官方文档:https://fastapi.tiangolo.com/tutorial/static-files/
|
||||
"""
|
||||
STATIC_ENABLE = True
|
||||
STATIC_URL = "/media"
|
||||
STATIC_DIR = "static"
|
||||
STATIC_ROOT = os.path.join(BASE_DIR, STATIC_DIR)
|
||||
|
||||
|
||||
"""
|
||||
跨域解决
|
||||
详细解释:https://cloud.tencent.com/developer/article/1886114
|
||||
官方文档:https://fastapi.tiangolo.com/tutorial/cors/
|
||||
"""
|
||||
# 是否启用跨域
|
||||
CORS_ORIGIN_ENABLE = True
|
||||
# 只允许访问的域名列表,* 代表所有
|
||||
ALLOW_ORIGINS = ["*"]
|
||||
# 是否支持携带 cookie
|
||||
ALLOW_CREDENTIALS = True
|
||||
# 设置允许跨域的http方法,比如 get、post、put等。
|
||||
ALLOW_METHODS = ["*"]
|
||||
# 允许携带的headers,可以用来鉴别来源等作用。
|
||||
ALLOW_HEADERS = ["*"]
|
||||
|
||||
"""
|
||||
全局事件配置
|
||||
"""
|
||||
EVENTS = [
|
||||
"core.event.connect_mongo" if MONGO_DB_ENABLE else None,
|
||||
"core.event.connect_redis" if REDIS_DB_ENABLE else None,
|
||||
]
|
||||
|
||||
"""
|
||||
其他项目配置
|
||||
"""
|
||||
# 默认密码,"0" 默认为手机号后六位
|
||||
DEFAULT_PASSWORD = "0"
|
||||
# 默认头像
|
||||
DEFAULT_AVATAR = "https://vv-reserve.oss-cn-hangzhou.aliyuncs.com/avatar/2023-01-27/1674820804e81e7631.png"
|
||||
# 默认登陆时最大输入密码或验证码错误次数
|
||||
DEFAULT_AUTH_ERROR_MAX_NUMBER = 5
|
||||
# 是否开启保存登录日志
|
||||
LOGIN_LOG_RECORD = True
|
||||
# 是否开启保存每次请求日志到本地
|
||||
REQUEST_LOG_RECORD = True
|
||||
# 是否开启每次操作日志记录到MongoDB数据库
|
||||
OPERATION_LOG_RECORD = True
|
||||
# 只记录包括的请求方式操作到MongoDB数据库
|
||||
OPERATION_RECORD_METHOD = ["POST", "PUT", "DELETE"]
|
||||
# 忽略的操作接口函数名称,列表中的函数名称不会被记录到操作日志中
|
||||
IGNORE_OPERATION_FUNCTION = ["post_dicts_details"]
|
||||
|
||||
"""
|
||||
中间件配置
|
||||
"""
|
||||
MIDDLEWARES = [
|
||||
"core.middleware.register_request_log_middleware" if REQUEST_LOG_RECORD else None,
|
||||
"core.middleware.register_operation_record_middleware" if OPERATION_LOG_RECORD and MONGO_DB_ENABLE else None,
|
||||
"core.middleware.register_demo_env_middleware" if DEMO else None,
|
||||
"core.middleware.register_jwt_refresh_middleware"
|
||||
]
|
||||
|
||||
"""
|
||||
定时任务配置
|
||||
"""
|
||||
# 发布/订阅通道,与定时任务程序相互关联,请勿随意更改
|
||||
SUBSCRIBE = 'kinit_queue'
|
30
application/urls.py
Normal file
30
application/urls.py
Normal file
@ -0,0 +1,30 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# @version : 1.0
|
||||
# @Create Time : 2021/10/19 15:47
|
||||
# @File : urls.py
|
||||
# @IDE : PyCharm
|
||||
# @desc : 路由文件
|
||||
|
||||
from apps.vadmin.auth.utils.login import app as auth_app
|
||||
from apps.vadmin.auth.views import app as vadmin_auth_app
|
||||
from apps.vadmin.system.views import app as vadmin_system_app
|
||||
from apps.vadmin.record.views import app as vadmin_record_app
|
||||
from apps.vadmin.workplace.views import app as vadmin_workplace_app
|
||||
from apps.vadmin.analysis.views import app as vadmin_analysis_app
|
||||
from apps.vadmin.help.views import app as vadmin_help_app
|
||||
from apps.vadmin.resource.views import app as vadmin_resource_app
|
||||
from apps.business.project.views import app as project_app
|
||||
|
||||
|
||||
# 引入应用中的路由
|
||||
urlpatterns = [
|
||||
{"ApiRouter": auth_app, "prefix": "/auth", "tags": ["系统认证"]},
|
||||
{"ApiRouter": vadmin_auth_app, "prefix": "/vadmin/auth", "tags": ["权限管理"]},
|
||||
{"ApiRouter": vadmin_system_app, "prefix": "/vadmin/system", "tags": ["系统管理"]},
|
||||
{"ApiRouter": vadmin_record_app, "prefix": "/vadmin/record", "tags": ["记录管理"]},
|
||||
{"ApiRouter": vadmin_workplace_app, "prefix": "/vadmin/workplace", "tags": ["工作区管理"]},
|
||||
{"ApiRouter": vadmin_analysis_app, "prefix": "/vadmin/analysis", "tags": ["数据分析管理"]},
|
||||
{"ApiRouter": vadmin_help_app, "prefix": "/vadmin/help", "tags": ["帮助中心管理"]},
|
||||
{"ApiRouter": vadmin_resource_app, "prefix": "/vadmin/resource", "tags": ["资源管理"]},
|
||||
{"ApiRouter": project_app, "prefix": "/business/project", "tags": ["项目管理"]},
|
||||
]
|
Reference in New Issue
Block a user