feat:接口异常描述
fix:接口注释 fix:前端认证过期提示
This commit is contained in:
parent
6bcce4ed1a
commit
4320d2db82
@ -114,7 +114,7 @@ service.interceptors.response.use(
|
||||
// 强制要求重新登录,因账号已冻结,账号已过期,手机号码错误,刷新token无效等问题导致
|
||||
const authStore = useAuthStore()
|
||||
authStore.logout()
|
||||
message = '未认证,请登录'
|
||||
message = '认证已过期,请重新登录'
|
||||
break
|
||||
case 403:
|
||||
message = '拒绝访问'
|
||||
|
@ -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"
|
||||
|
||||
|
||||
"""
|
||||
|
@ -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"
|
||||
|
||||
|
||||
"""
|
||||
|
@ -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
|
||||
|
||||
"""
|
||||
挂载临时文件目录,并添加路由访问,此路由不会在接口文档中显示
|
||||
|
@ -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 : 路由文件
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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 : 增删改查
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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 : 关联中间表
|
||||
|
@ -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 : 菜单模型
|
||||
|
@ -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 : 角色模型
|
||||
|
@ -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 : 用户模型
|
||||
|
@ -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 : 查询参数-类依赖项
|
||||
|
@ -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 : 查询参数-类依赖项
|
||||
|
@ -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 模型,用于数据库序列化操作
|
||||
|
@ -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 模型,用于数据库序列化操作
|
||||
|
@ -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 模型,用于数据库序列化操作
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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 : 获取认证后的信息工具
|
||||
|
@ -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")
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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 : 用户凭证验证装饰器
|
||||
|
@ -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 : 登录验证装饰器
|
||||
|
@ -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)
|
||||
|
||||
|
||||
|
@ -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 : 帮助中心
|
||||
|
@ -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 : 帮助中心 - 增删改查
|
||||
|
@ -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 : 初始化文件
|
||||
|
@ -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 : 常见问题
|
||||
|
@ -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 : 初始化文件
|
||||
|
@ -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 : 常见问题
|
||||
|
@ -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 : 初始化文件
|
||||
|
@ -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 : 常见问题
|
||||
|
@ -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 : 常见问题类别
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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 : 帮助中心视图
|
||||
|
@ -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 : 数据库 增删改查操作
|
||||
|
@ -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例子
|
||||
|
@ -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 : 登录记录模型
|
||||
|
@ -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 : 短信发送记录模型
|
||||
|
@ -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 : 查询参数-类依赖项
|
||||
|
@ -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 : 查询参数-类依赖项
|
||||
|
@ -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 : 查询参数-类依赖项
|
||||
|
@ -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 模型,用于数据库序列化操作
|
||||
|
@ -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 模型,用于数据库序列化操作
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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 : 主要接口文件
|
||||
|
@ -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 : 数据库 增删改查操作
|
||||
|
@ -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 : 系统字典模型
|
||||
|
@ -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 : 系统字典模型
|
||||
|
@ -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 : 系统配置分类模型
|
||||
|
@ -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 : 查询参数-类依赖项
|
||||
|
@ -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 : 查询参数-类依赖项
|
||||
|
@ -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 模型,用于数据库序列化操作
|
||||
|
@ -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 模型,用于数据库序列化操作
|
||||
|
@ -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 模型,用于数据库序列化操作
|
||||
|
@ -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="每次进入系统中时使用")
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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 : 数据库 增删改查操作
|
||||
|
@ -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 : 自定义数据类型
|
||||
|
@ -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
|
||||
|
@ -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 : 常用依赖项
|
||||
|
@ -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 : 增加枚举类方法
|
||||
|
@ -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:
|
||||
|
@ -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(
|
||||
|
@ -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))
|
||||
|
@ -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 : 中间件
|
||||
|
@ -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 模型重用验证器
|
||||
|
@ -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 模型
|
||||
|
@ -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 : 主程序入口
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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 :
|
||||
|
@ -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}
|
||||
|
@ -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 :
|
||||
|
@ -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 : 初始化数据
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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
|
||||
|
@ -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 : 缓存
|
||||
|
@ -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 : 计数
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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 文件操作
|
||||
|
@ -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 : 数据导入管理
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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 : 阿里云对象存储
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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 : 保存图片到本地
|
||||
|
@ -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地址归属地
|
||||
|
@ -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 : 发送邮件封装类
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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 : 工具类
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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 : 简要说明
|
||||
|
@ -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 : 获取小程序全局唯一后台接口调用凭据
|
||||
|
Loading…
x
Reference in New Issue
Block a user