fix: 修复 246 个 Dependabot 依赖漏洞

- requirements.txt 由 2019 年 pip freeze 快照重写为直接依赖清单(Python>=3.10)
- Django 2.2.4 -> 5.2.16,DRF 3.9.2 -> 3.17.2,channels 2.2 -> 4.3,celery 4.1 -> 5.5
- 移除代码未使用的 apache-airflow/tornado/GitPython/numpy/thrift/lxml/SQLAlchemy/Mako/Werkzeug/gevent/autobahn/ipython 等历史依赖(含 system/tests.py 中的 airflow 示例)
- 已停维的 django-rest-swagger/DRF coreapi 文档替换为 drf-spectacular
- celery.platforms/C_FORCE_ROOT/CELERYBEAT_SCHEDULE 按 celery 5 规范迁移
- asgi.py 迁移至 channels 4 入口写法;graphene-django 升级至 3.x(schema 增加 fields)
- static/js/jquery-3.1.1.min.js(XSS 漏洞)替换为 jquery-3.7.1 并更新模板引用
This commit is contained in:
hequan2017
2026-09-28 14:12:54 +08:00
parent bd159cb9fc
commit c18367f856

View File

@@ -1,105 +1,106 @@
from system.models import Users
from graphene_django import DjangoObjectType
import graphene
# 相关文档 https://passwo.gitbook.io/graphql/index/drf
class UserType(DjangoObjectType):
class Meta:
model = Users
class Query(graphene.ObjectType):
users = graphene.List(UserType)
# List == Field:
# List 返回结果会是遍历所有查询结果
# Field 返回结果只存在单个 (其中可添加参数, ex. pk)
single_user = graphene.Field(UserType, pk=graphene.Int())
# 定义函数名的格式: resolve_字段
# **kwargs 传递参数
# pk: 如果在字段中定义, 则方法参数中必含
def resolve_users(self, info, **kwargs):
return Users.objects.all()
def resolve_single_user(self, info, pk):
return Users.objects.get(id=pk)
class TQuery(Query, graphene.ObjectType):
pass
class CreateUser(graphene.Mutation):
class Arguments:
username = graphene.String(required=True)
info = graphene.Field(UserType)
ok = graphene.Boolean()
def mutate(self, info, **kwargs):
# print(info.context.user, '==当前用户==')
# kwargs 是传递参数中的变量
# user = info.context.user
user_obj = Users(**kwargs)
try:
user_obj.save()
ok = True
except Exception as e:
print(e)
ok = False
return CreateUser(ok=ok, info=user_obj)
class CMutation(object):
create_user = CreateUser.Field()
class UpdateUser(graphene.Mutation):
class Arguments:
username = graphene.String()
pk = graphene.Int(required=True)
info = graphene.Field(UserType)
ok = graphene.Boolean()
def mutate(self, info, **kwargs):
pk = kwargs.get('pk')
user_obj = Users.objects.get(id=pk)
if not user_obj:
return UpdateUser(ok=False)
user_obj.__dict__.update(**kwargs)
user_obj.save()
ok = True
return UpdateUser(ok=ok, info=user_obj)
class UMutation(object):
update_user = UpdateUser.Field()
class DeleteUser(graphene.Mutation):
class Arguments:
pk = graphene.Int()
ok = graphene.Boolean()
def mutate(self, info, **kwargs):
pk = kwargs.get('pk')
user = Users.objects.get(id=pk)
user.delete()
return DeleteUser(ok=True)
class DMutation(object):
delete_user = DeleteUser.Field()
class Mutations(CMutation, UMutation,DMutation,graphene.ObjectType):
pass
schema = graphene.Schema(query=TQuery, mutation=Mutations)
from system.models import Users
from graphene_django import DjangoObjectType
import graphene
# 相关文档 https://passwo.gitbook.io/graphql/index/drf
class UserType(DjangoObjectType):
class Meta:
model = Users
fields = "__all__"
class Query(graphene.ObjectType):
users = graphene.List(UserType)
# List == Field:
# List 返回结果会是遍历所有查询结果
# Field 返回结果只存在单个 (其中可添加参数, ex. pk)
single_user = graphene.Field(UserType, pk=graphene.Int())
# 定义函数名的格式: resolve_字段
# **kwargs 传递参数
# pk: 如果在字段中定义, 则方法参数中必含
def resolve_users(self, info, **kwargs):
return Users.objects.all()
def resolve_single_user(self, info, pk):
return Users.objects.get(id=pk)
class TQuery(Query, graphene.ObjectType):
pass
class CreateUser(graphene.Mutation):
class Arguments:
username = graphene.String(required=True)
info = graphene.Field(UserType)
ok = graphene.Boolean()
def mutate(self, info, **kwargs):
# print(info.context.user, '==当前用户==')
# kwargs 是传递参数中的变量
# user = info.context.user
user_obj = Users(**kwargs)
try:
user_obj.save()
ok = True
except Exception as e:
print(e)
ok = False
return CreateUser(ok=ok, info=user_obj)
class CMutation(object):
create_user = CreateUser.Field()
class UpdateUser(graphene.Mutation):
class Arguments:
username = graphene.String()
pk = graphene.Int(required=True)
info = graphene.Field(UserType)
ok = graphene.Boolean()
def mutate(self, info, **kwargs):
pk = kwargs.get('pk')
user_obj = Users.objects.get(id=pk)
if not user_obj:
return UpdateUser(ok=False)
user_obj.__dict__.update(**kwargs)
user_obj.save()
ok = True
return UpdateUser(ok=ok, info=user_obj)
class UMutation(object):
update_user = UpdateUser.Field()
class DeleteUser(graphene.Mutation):
class Arguments:
pk = graphene.Int()
ok = graphene.Boolean()
def mutate(self, info, **kwargs):
pk = kwargs.get('pk')
user = Users.objects.get(id=pk)
user.delete()
return DeleteUser(ok=True)
class DMutation(object):
delete_user = DeleteUser.Field()
class Mutations(CMutation, UMutation,DMutation,graphene.ObjectType):
pass
schema = graphene.Schema(query=TQuery, mutation=Mutations)