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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# @version : 1.0 # @version : 1.0
# @Creaet Time : 2021/10/18 22:19 # @Create Time : 2021/10/18 22:19
# @File : database.py # @File : database.py
# @IDE : PyCharm # @IDE : PyCharm
# @desc : SQLAlchemy 部分 # @desc : SQLAlchemy 部分
@ -10,13 +10,16 @@
安装 pip install sqlalchemy 安装 pip install sqlalchemy
中文文档https://www.osgeo.cn/sqlalchemy/ 中文文档https://www.osgeo.cn/sqlalchemy/
""" """
from aioredis import Redis
from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession
from sqlalchemy.ext.declarative import declared_attr, declarative_base from sqlalchemy.ext.declarative import declared_attr, declarative_base
from sqlalchemy.orm import sessionmaker 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: :return:
""" """
engine = create_async_engine( engine = create_async_engine(
database_url database_url,
, echo=False echo=False,
, pool_pre_ping=True pool_pre_ping=True,
, pool_recycle=3600 pool_recycle=3600,
, future=True future=True,
, max_overflow=5 max_overflow=5,
, connect_args={"check_same_thread": False, "timeout": 30} if database_type == "sqlite3" else {} connect_args={}
) )
return sessionmaker(autocommit=False, autoflush=False, bind=engine, expire_on_commit=True, class_=AsyncSession) 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(): async with session.begin():
yield session 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 #!/usr/bin/python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# @version : 1.0 # @version : 1.0
# @Creaet Time : 2022/8/8 14:18 # @Create Time : 2022/8/8 14:18
# @File : dependencies.py # @File : dependencies.py
# @IDE : PyCharm # @IDE : PyCharm
# @desc : 常用依赖项 # @desc : 常用依赖项

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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