feat:接口异常描述

fix:接口注释
fix:前端认证过期提示
This commit is contained in:
ktianc 2023-05-05 15:00:22 +08:00
parent 6bcce4ed1a
commit 4320d2db82
97 changed files with 162 additions and 135 deletions

View File

@ -114,7 +114,7 @@ service.interceptors.response.use(
// 强制要求重新登录因账号已冻结账号已过期手机号码错误刷新token无效等问题导致
const authStore = useAuthStore()
authStore.logout()
message = '认证,请登录'
message = '认证已过期,请重新登录'
break
case 403:
message = '拒绝访问'

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/19 15:47
# @Create Time : 2021/10/19 15:47
# @File : development.py
# @IDE : PyCharm
# @desc : 数据库生产配置文件
@ -12,7 +12,6 @@ Mysql 数据库配置项
数据库链接配置说明mysql+asyncmy://数据库用户名:数据库密码@数据库地址:数据库端口/数据库名称
"""
SQLALCHEMY_DATABASE_URL = "mysql+asyncmy://数据库用户名:数据库密码@数据库地址:数据库端口/数据库名称"
SQLALCHEMY_DATABASE_TYPE = "mysql"
"""

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/19 15:47
# @Create Time : 2021/10/19 15:47
# @File : production.py
# @IDE : PyCharm
# @desc : 数据库开发配置文件
@ -12,7 +12,6 @@ Mysql 数据库配置项
数据库链接配置说明mysql+asyncmy://数据库用户名:数据库密码@数据库地址:数据库端口/数据库名称
"""
SQLALCHEMY_DATABASE_URL = "mysql+asyncmy://数据库用户名:数据库密码@数据库地址:数据库端口/数据库名称"
SQLALCHEMY_DATABASE_TYPE = "mysql"
"""

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/19 15:47
# @Create Time : 2021/10/19 15:47
# @File : settings.py
# @IDE : PyCharm
# @desc : 主配置文件
@ -11,7 +11,7 @@ from fastapi.security import OAuth2PasswordBearer
"""
系统版本
"""
VERSION = "1.7.7"
VERSION = "1.7.8"
"""安全警告: 不要在生产中打开调试运行!"""
DEBUG = True
@ -55,7 +55,7 @@ ACCESS_TOKEN_EXPIRE_MINUTES = 1440
"""refresh_token 过期时间用于刷新token使用两天"""
REFRESH_TOKEN_EXPIRE_MINUTES = 1440 * 2
"""access_token 缓存时间用于刷新token使用30分钟"""
ACCESS_TOKEN_CACHE_MINUTES = 30
ACCESS_TOKEN_CACHE_MINUTES = 60 * 2
"""
挂载临时文件目录并添加路由访问此路由不会在接口文档中显示

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/19 15:47
# @Create Time : 2021/10/19 15:47
# @File : urls.py
# @IDE : PyCharm
# @desc : 路由文件

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/2/24 10:19
# @Create Time : 2022/2/24 10:19
# @File : __init__.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/10/19 15:41
# @Create Time : 2022/10/19 15:41
# @File : views.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/2/24 10:21
# @Create Time : 2022/2/24 10:21
# @File : crud.py
# @IDE : PyCharm
# @desc : 增删改查

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/7/7 13:41
# @Create Time : 2022/7/7 13:41
# @File : __init__.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/7/7 13:41
# @Create Time : 2022/7/7 13:41
# @File : m2m.py
# @IDE : PyCharm
# @desc : 关联中间表

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/7/7 13:41
# @Create Time : 2022/7/7 13:41
# @File : menu.py
# @IDE : PyCharm
# @desc : 菜单模型

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/7/7 13:41
# @Create Time : 2022/7/7 13:41
# @File : role.py
# @IDE : PyCharm
# @desc : 角色模型

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/7/7 13:41
# @Create Time : 2022/7/7 13:41
# @File : user.py
# @IDE : PyCharm
# @desc : 用户模型

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:19
# @Create Time : 2021/10/18 22:19
# @File : role.py
# @IDE : PyCharm
# @desc : 查询参数-类依赖项

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:19
# @Create Time : 2021/10/18 22:19
# @File : user.py
# @IDE : PyCharm
# @desc : 查询参数-类依赖项

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:19
# @Create Time : 2021/10/18 22:19
# @File : role.py
# @IDE : PyCharm
# @desc : pydantic 模型,用于数据库序列化操作

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:19
# @Create Time : 2021/10/18 22:19
# @File : role.py
# @IDE : PyCharm
# @desc : pydantic 模型,用于数据库序列化操作

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:19
# @Create Time : 2021/10/18 22:19
# @File : user.py
# @IDE : PyCharm
# @desc : pydantic 模型,用于数据库序列化操作

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/8/8 11:02
# @Create Time : 2022/8/8 11:02
# @File : __init__.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/24 16:44
# @Create Time : 2021/10/24 16:44
# @File : current.py
# @IDE : PyCharm
# @desc : 获取认证后的信息工具

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/24 16:44
# @Create Time : 2021/10/24 16:44
# @File : views.py
# @IDE : PyCharm
# @desc : 安全认证视图
@ -21,9 +21,10 @@ PassLib 是一个用于处理哈希密码的很棒的 Python 包。它支持许
from datetime import timedelta
import jwt
from aioredis import Redis
from fastapi import APIRouter, Depends, Request, Body
from sqlalchemy.ext.asyncio import AsyncSession
from core.database import db_getter
from core.database import db_getter, redis_getter
from utils import status
from utils.response import SuccessResponse, ErrorResponse
from application import settings
@ -74,11 +75,11 @@ async def login_for_access_token(
@app.post("/wx/login/", summary="微信服务端一键登录", description="员工登录通道")
async def wx_login_for_access_token(request: Request, data: WXLoginForm, db: AsyncSession = Depends(db_getter)):
async def wx_login_for_access_token(data: WXLoginForm, db: AsyncSession = Depends(db_getter), rd: Redis = Depends(redis_getter)):
try:
if data.platform != "1" or data.method != "2":
raise ValueError("无效参数")
wx = WXOAuth(request.app.state.redis, 0)
wx = WXOAuth(rd, 0)
telephone = await wx.parsing_phone_number(data.code)
if not telephone:
raise ValueError("无效Code")

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/8/8 11:02
# @Create Time : 2022/8/8 11:02
# @File : auth_util.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/11/9 10:14
# @Create Time : 2022/11/9 10:14
# @File : __init__.py.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/24 16:44
# @Create Time : 2021/10/24 16:44
# @File : auth.py
# @IDE : PyCharm
# @desc : 用户凭证验证装饰器

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/11/9 10:15
# @Create Time : 2022/11/9 10:15
# @File : login.py
# @IDE : PyCharm
# @desc : 登录验证装饰器

View File

@ -1,13 +1,15 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/2/24 17:02
# @Create Time : 2022/2/24 17:02
# @File : views.py
# @IDE : PyCharm
# @desc : 简要说明
from aioredis import Redis
from fastapi import APIRouter, Depends, Body, UploadFile, Request
from sqlalchemy.orm import joinedload
from core.database import redis_getter
from utils.response import SuccessResponse, ErrorResponse
from . import schemas, crud, models
from core.dependencies import IdList
@ -114,23 +116,25 @@ async def post_import_users(file: UploadFile, auth: Auth = Depends(FullAdminAuth
async def post_users_init_password(
request: Request,
ids: IdList = Depends(),
auth: Auth = Depends(FullAdminAuth(permissions=["auth.user.reset"]))
auth: Auth = Depends(FullAdminAuth(permissions=["auth.user.reset"])),
rd: Redis = Depends(redis_getter)
):
return SuccessResponse(await crud.UserDal(auth.db).init_password_send_sms(ids.ids, request.app.state.redis))
return SuccessResponse(await crud.UserDal(auth.db).init_password_send_sms(ids.ids, rd))
@app.post("/users/init/password/send/email/", summary="初始化所选用户密码并发送通知邮件")
async def post_users_init_password_send_email(
request: Request,
ids: IdList = Depends(),
auth: Auth = Depends(FullAdminAuth(permissions=["auth.user.reset"]))
auth: Auth = Depends(FullAdminAuth(permissions=["auth.user.reset"])),
rd: Redis = Depends(redis_getter)
):
return SuccessResponse(await crud.UserDal(auth.db).init_password_send_email(ids.ids, request.app.state.redis))
return SuccessResponse(await crud.UserDal(auth.db).init_password_send_email(ids.ids, rd))
@app.put("/users/wx/server/openid/", summary="更新当前用户服务端微信平台openid")
async def put_user_wx_server_openid(request: Request, code: str, auth: Auth = Depends(AllUserAuth())):
result = await crud.UserDal(auth.db).update_wx_server_openid(code, auth.user, request.app.state.redis)
async def put_user_wx_server_openid(code: str, auth: Auth = Depends(AllUserAuth()), rd: Redis = Depends(redis_getter)):
result = await crud.UserDal(auth.db).update_wx_server_openid(code, auth.user, rd)
return SuccessResponse(result)

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2023-02-15 20:03:49
# @Create Time : 2023-02-15 20:03:49
# @File : __init__.py
# @IDE : PyCharm
# @desc : 帮助中心

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2023-02-15 20:03:49
# @Create Time : 2023-02-15 20:03:49
# @File : crud.py
# @IDE : PyCharm
# @desc : 帮助中心 - 增删改查

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2023-02-15 20:03:49
# @Create Time : 2023-02-15 20:03:49
# @File : __init__.py
# @IDE : PyCharm
# @desc : 初始化文件

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/7/7 13:41
# @Create Time : 2022/7/7 13:41
# @File : issue.py
# @IDE : PyCharm
# @desc : 常见问题

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2023-02-15 20:03:49
# @Create Time : 2023-02-15 20:03:49
# @File : __init__.py
# @IDE : PyCharm
# @desc : 初始化文件

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/7/7 13:41
# @Create Time : 2022/7/7 13:41
# @File : issue.py
# @IDE : PyCharm
# @desc : 常见问题

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2023-02-15 20:03:49
# @Create Time : 2023-02-15 20:03:49
# @File : __init__.py
# @IDE : PyCharm
# @desc : 初始化文件

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/7/7 13:41
# @Create Time : 2022/7/7 13:41
# @File : issue.py
# @IDE : PyCharm
# @desc : 常见问题

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/7/7 13:41
# @Create Time : 2022/7/7 13:41
# @File : issue_category.py
# @IDE : PyCharm
# @desc : 常见问题类别

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2023/2/17 15:18
# @Create Time : 2023/2/17 15:18
# @File : issue_m2m.py.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2023-02-15 20:03:49
# @Create Time : 2023-02-15 20:03:49
# @File : views.py
# @IDE : PyCharm
# @desc : 帮助中心视图

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:18
# @Create Time : 2021/10/18 22:18
# @File : crud.py
# @IDE : PyCharm
# @desc : 数据库 增删改查操作

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/2/14 21:11
# @Create Time : 2022/2/14 21:11
# @File : __init__.py.py
# @IDE : PyCharm
# @desc : xpath例子

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/7/7 13:41
# @Create Time : 2022/7/7 13:41
# @File : login.py
# @IDE : PyCharm
# @desc : 登录记录模型

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/3/21 17:36
# @Create Time : 2022/3/21 17:36
# @File : sms.py
# @IDE : PyCharm
# @desc : 短信发送记录模型

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:19
# @Create Time : 2021/10/18 22:19
# @File : login.py
# @IDE : PyCharm
# @desc : 查询参数-类依赖项

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:19
# @Create Time : 2021/10/18 22:19
# @File : operation.py
# @IDE : PyCharm
# @desc : 查询参数-类依赖项

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:19
# @Create Time : 2021/10/18 22:19
# @File : sms.py
# @IDE : PyCharm
# @desc : 查询参数-类依赖项

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:19
# @Create Time : 2021/10/18 22:19
# @File : login.py
# @IDE : PyCharm
# @desc : pydantic 模型,用于数据库序列化操作

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:19
# @Create Time : 2021/10/18 22:19
# @File : operation.py
# @IDE : PyCharm
# @desc : pydantic 模型,用于数据库序列化操作

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/3/21 17:54
# @Create Time : 2022/3/21 17:54
# @File : sms.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/24 16:44
# @Create Time : 2021/10/24 16:44
# @File : views.py
# @IDE : PyCharm
# @desc : 主要接口文件

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:18
# @Create Time : 2021/10/18 22:18
# @File : crud.py
# @IDE : PyCharm
# @desc : 数据库 增删改查操作

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/7/7 13:41
# @Create Time : 2022/7/7 13:41
# @File : user.py
# @IDE : PyCharm
# @desc : 系统字典模型

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/7/7 13:41
# @Create Time : 2022/7/7 13:41
# @File : settings.py
# @IDE : PyCharm
# @desc : 系统字典模型

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/7/7 13:41
# @Create Time : 2022/7/7 13:41
# @File : settings_tab.py
# @IDE : PyCharm
# @desc : 系统配置分类模型

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:19
# @Create Time : 2021/10/18 22:19
# @File : dict_type.py
# @IDE : PyCharm
# @desc : 查询参数-类依赖项

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:19
# @Create Time : 2021/10/18 22:19
# @File : dict_type.py
# @IDE : PyCharm
# @desc : 查询参数-类依赖项

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:19
# @Create Time : 2021/10/18 22:19
# @File : dict.py
# @IDE : PyCharm
# @desc : pydantic 模型,用于数据库序列化操作

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:19
# @Create Time : 2021/10/18 22:19
# @File : settings.py
# @IDE : PyCharm
# @desc : pydantic 模型,用于数据库序列化操作

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:19
# @Create Time : 2021/10/18 22:19
# @File : settings_tab.py
# @IDE : PyCharm
# @desc : pydantic 模型,用于数据库序列化操作

View File

@ -1,16 +1,17 @@
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/24 16:44
# @Create Time : 2021/10/24 16:44
# @File : views.py
# @IDE : PyCharm
# @desc : 主要接口文件
# UploadFile 库依赖pip install python-multipart
from typing import List
from aioredis import Redis
from fastapi import APIRouter, Depends, Body, UploadFile, Request, Form
from sqlalchemy.ext.asyncio import AsyncSession
from application.settings import ALIYUN_OSS
from core.database import db_getter
from core.database import db_getter, redis_getter
from utils.file.aliyun_oss import AliyunOSS, BucketConf
from utils.aliyun_sms import AliyunSMS
from utils.file.file_manage import FileManage
@ -126,8 +127,8 @@ async def upload_image_to_local(file: UploadFile, path: str = Form(...)):
# 短信服务管理
###########################################################
@app.post("/sms/send/", summary="发送短信验证码(阿里云服务)")
async def sms_send(request: Request, telephone: str):
sms = AliyunSMS(request.app.state.redis, telephone)
async def sms_send(telephone: str, rd: Redis = Depends(redis_getter)):
sms = AliyunSMS(rd, telephone)
return SuccessResponse(await sms.main_async(AliyunSMS.Scene.login))
@ -145,8 +146,8 @@ async def get_settings_tabs_values(tab_id: int, auth: Auth = Depends(FullAdminAu
@app.put("/settings/tabs/values/", summary="更新系统配置信息")
async def put_settings_tabs_values(request: Request, datas: dict = Body(...), auth: Auth = Depends(FullAdminAuth())):
return SuccessResponse(await crud.SettingsDal(auth.db).update_datas(datas, request.app.state.redis))
async def put_settings_tabs_values(datas: dict = Body(...), auth: Auth = Depends(FullAdminAuth()), rd: Redis = Depends(redis_getter)):
return SuccessResponse(await crud.SettingsDal(auth.db).update_datas(datas, rd))
@app.get("/settings/base/config/", summary="获取系统基础配置", description="每次进入系统中时使用")

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/10/19 15:41
# @Create Time : 2022/10/19 15:41
# @File : __init__.py.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/10/19 15:41
# @Create Time : 2022/10/19 15:41
# @File : views.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:18
# @Create Time : 2021/10/18 22:18
# @File : crud.py
# @IDE : PyCharm
# @desc : 数据库 增删改查操作

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/11/14 12:42
# @Create Time : 2022/11/14 12:42
# @File : data_types.py
# @IDE : PyCharm
# @desc : 自定义数据类型

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:19
# @Create Time : 2021/10/18 22:19
# @File : database.py
# @IDE : PyCharm
# @desc : SQLAlchemy 部分
@ -10,13 +10,16 @@
安装 pip install sqlalchemy
中文文档https://www.osgeo.cn/sqlalchemy/
"""
from aioredis import Redis
from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession
from sqlalchemy.ext.declarative import declared_attr, declarative_base
from sqlalchemy.orm import sessionmaker
from application.settings import SQLALCHEMY_DATABASE_URL, DEBUG, SQLALCHEMY_DATABASE_TYPE
from application.settings import SQLALCHEMY_DATABASE_URL, REDIS_DB_ENABLE
from fastapi import Request
from core.exception import CustomException
def create_async_engine_session(database_url: str, database_type: str = "mysql"):
def create_async_engine_session(database_url: str):
"""
创建数据库会话
@ -33,13 +36,13 @@ def create_async_engine_session(database_url: str, database_type: str = "mysql")
:return:
"""
engine = create_async_engine(
database_url
, echo=False
, pool_pre_ping=True
, pool_recycle=3600
, future=True
, max_overflow=5
, connect_args={"check_same_thread": False, "timeout": 30} if database_type == "sqlite3" else {}
database_url,
echo=False,
pool_pre_ping=True,
pool_recycle=3600,
future=True,
max_overflow=5,
connect_args={}
)
return sessionmaker(autocommit=False, autoflush=False, bind=engine, expire_on_commit=True, class_=AsyncSession)
@ -84,6 +87,17 @@ async def db_getter():
数据库依赖项它将在单个请求中使用然后在请求完成后将其关闭
"""
async with create_async_engine_session(SQLALCHEMY_DATABASE_URL, SQLALCHEMY_DATABASE_TYPE)() as session:
async with create_async_engine_session(SQLALCHEMY_DATABASE_URL)() as session:
async with session.begin():
yield session
def redis_getter(request: Request) -> Redis:
"""
获取关系数据库
数据库依赖项它将在单个请求中使用然后在请求完成后将其关闭
"""
if not REDIS_DB_ENABLE:
raise CustomException("请先配置Redis数据库链接并启用", desc="请启用 application/settings.py: REDIS_DB_ENABLE")
return request.app.state.redis

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/8/8 14:18
# @Create Time : 2022/8/8 14:18
# @File : dependencies.py
# @IDE : PyCharm
# @desc : 常用依赖项

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2023/02/12 22:18
# @Create Time : 2023/02/12 22:18
# @File : enum.py
# @IDE : PyCharm
# @desc : 增加枚举类方法

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/3/21 11:03
# @Create Time : 2022/3/21 11:03
# @File : event.py
# @IDE : PyCharm
# @desc : 全局事件
@ -63,7 +63,6 @@ async def connect_redis(app: FastAPI, status: bool):
"""
if status:
print("Connecting to Redis")
assert isinstance(app, FastAPI)
app.state.redis = aioredis.from_url(REDIS_DB_URL, decode_responses=True, health_check_interval=1)
await Cache(app.state.redis).cache_tab_names()
else:

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/19 15:47
# @Create Time : 2021/10/19 15:47
# @File : exception.py
# @IDE : PyCharm
# @desc : 全局异常处理
@ -17,10 +17,17 @@ from core.logger import logger
class CustomException(Exception):
def __init__(self, msg: str, code: int = status.HTTP_400_BAD_REQUEST, status_code: int = status.HTTP_200_OK):
def __init__(
self,
msg: str,
code: int = status.HTTP_400_BAD_REQUEST,
status_code: int = status.HTTP_200_OK,
desc: str = None
):
self.msg = msg
self.code = code
self.status_code = status_code
self.desc = desc
def register_exception(app: FastAPI):
@ -33,8 +40,14 @@ def register_exception(app: FastAPI):
"""
自定义异常
"""
print("请求地址", request.url.__str__())
print("捕捉到重写CustomException异常异常custom_exception_handler")
logger.error(exc.desc)
logger.error(exc.msg)
print(exc.desc)
print(exc.msg)
return JSONResponse(
status_code=exc.status_code,
status_code=200,
content={"message": exc.msg, "code": exc.code},
)
@ -43,6 +56,7 @@ def register_exception(app: FastAPI):
"""
重写HTTPException异常处理器
"""
print("请求地址", request.url.__str__())
print("捕捉到重写HTTPException异常异常unicorn_exception_handler")
logger.error(exc.detail)
print(exc.detail)
@ -59,6 +73,7 @@ def register_exception(app: FastAPI):
"""
重写请求验证异常处理器
"""
print("请求地址", request.url.__str__())
print("捕捉到重写请求验证异常异常validation_exception_handler")
logger.error(exc.errors())
print(exc.errors())
@ -88,6 +103,7 @@ def register_exception(app: FastAPI):
"""
捕获值异常
"""
print("请求地址", request.url.__str__())
print("捕捉到值异常value_exception_handler")
logger.error(exc.__str__())
print(exc.__str__())
@ -106,6 +122,7 @@ def register_exception(app: FastAPI):
"""
捕获全部异常
"""
print("请求地址", request.url.__str__())
print("捕捉到全局异常all_exception_handler")
logger.error(exc.__str__())
return JSONResponse(

View File

@ -20,10 +20,3 @@ log_path_error = os.path.join(log_path, f'error_{time.strftime("%Y-%m-%d")}.log'
info = logger.add(log_path_info, rotation="00:00", retention="3 days", enqueue=True, encoding="UTF-8", level="INFO")
error = logger.add(log_path_error, rotation="00:00", retention="3 days", enqueue=True, encoding="UTF-8", level="ERROR")
if __name__ == '__main__':
print(BASE_DIR)
# logger.info("1")
retry: int = 1
logger.error("未从Redis中获取到配置信息正在重新更新配置信息重试次数{}".format(retry))

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/19 15:47
# @Create Time : 2021/10/19 15:47
# @File : middleware.py
# @IDE : PyCharm
# @desc : 中间件

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:19
# @Create Time : 2021/10/18 22:19
# @File : validator.py
# @IDE : PyCharm
# @desc : pydantic 模型重用验证器

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/18 22:19
# @Create Time : 2021/10/18 22:19
# @File : db_base.py
# @IDE : PyCharm
# @desc : 数据库公共 ORM 模型

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/19 15:47
# @Create Time : 2021/10/19 15:47
# @File : main.py
# @IDE : PyCharm
# @desc : 主程序入口

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/12/9 15:26
# @Create Time : 2022/12/9 15:26
# @File : __init__.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/12/9 15:27
# @Create Time : 2022/12/9 15:27
# @File : main.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : {create_datetime}
# @Create Time : {create_datetime}
# @File : crud.py
# @IDE : PyCharm
# @desc :

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : {create_datetime}
# @Create Time : {create_datetime}
# @File : {filename}
# @IDE : PyCharm
# @desc : {desc}

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : {create_datetime}
# @Create Time : {create_datetime}
# @File : views.py
# @IDE : PyCharm
# @desc :

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/10/19 15:47
# @Create Time : 2021/10/19 15:47
# @File : initialize.py
# @IDE : PyCharm
# @desc : 初始化数据

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/11/23 11:21
# @Create Time : 2022/11/23 11:21
# @File : initialize.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# @version : 1.3
# @Creaet Time : 2021/3/15
# @Create Time : 2021/3/15
# @Author : LZK
# @File : aliyun_sms.py
# @Software : PyCharm

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/3/21 11:03
# @Create Time : 2022/3/21 11:03
# @File : cache.py
# @IDE : PyCharm
# @desc : 缓存

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/11/3 17:23
# @Create Time : 2022/11/3 17:23
# @File : count.py
# @IDE : PyCharm
# @desc : 计数

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/11/14 9:56
# @Create Time : 2022/11/14 9:56
# @File : __init__.py.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/5/6 17:25
# @Create Time : 2022/5/6 17:25
# @File : excel_manage.py
# @IDE : PyCharm
# @desc : EXCEL 文件操作

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/12/5 8:45
# @Create Time : 2021/12/5 8:45
# @File : import_manage.py
# @IDE : PyCharm
# @desc : 数据导入管理

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/11/11 12:01
# @Create Time : 2022/11/11 12:01
# @File : write_xlsx.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/12/12 14:30
# @Create Time : 2022/12/12 14:30
# @File : __init__.py.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/4/28 22:32
# @Create Time : 2022/4/28 22:32
# @File : aliyun_oss.py
# @IDE : PyCharm
# @desc : 阿里云对象存储

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/12/12 14:31
# @Create Time : 2022/12/12 14:31
# @File : file_base.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/12/5 8:45
# @Create Time : 2021/12/5 8:45
# @File : file_manage.py
# @IDE : PyCharm
# @desc : 保存图片到本地

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/11/3 17:23
# @Create Time : 2022/11/3 17:23
# @File : ip_manage.py
# @IDE : PyCharm
# @desc : 获取IP地址归属地

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2023/3/27 9:48
# @Create Time : 2023/3/27 9:48
# @File : send_email.py
# @IDE : PyCharm
# @desc : 发送邮件封装类

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/8/10 22:20
# @Create Time : 2022/8/10 22:20
# @File : status.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/10/9 17:09
# @Create Time : 2022/10/9 17:09
# @File : tools.py
# @IDE : PyCharm
# @desc : 工具类

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/3/15 20:18
# @Create Time : 2022/3/15 20:18
# @File : __init__.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/3/15 20:44
# @Create Time : 2022/3/15 20:44
# @File : oauth.py
# @IDE : PyCharm
# @desc : 简要说明

View File

@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2021/11/27 18:37
# @Create Time : 2021/11/27 18:37
# @File : wx_access_token.py
# @IDE : PyCharm
# @desc : 获取小程序全局唯一后台接口调用凭据