From 4901734d9d4707c1b289fc05a15cda92a5308fbe Mon Sep 17 00:00:00 2001 From: BINGWU Date: Wed, 10 Apr 2024 09:18:09 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=A8=A1=E5=9D=97=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- serve/serve/__init__.py | 18 +++ .../__pycache__/__init__.cpython-311.pyc | Bin 224 -> 936 bytes serve/serve/models/user.py | 31 +++- .../utils/__pycache__/pyjwt.cpython-311.pyc | Bin 1701 -> 1693 bytes serve/serve/utils/pyjwt.py | 16 +- .../views/__pycache__/user.cpython-311.pyc | Bin 5318 -> 8482 bytes serve/serve/views/user.py | 140 ++++++++++++------ 7 files changed, 148 insertions(+), 57 deletions(-) diff --git a/serve/serve/__init__.py b/serve/serve/__init__.py index e69de29..941ea5c 100644 --- a/serve/serve/__init__.py +++ b/serve/serve/__init__.py @@ -0,0 +1,18 @@ +def execute_before(func): + def wrapper(*args, **kwargs): + # 在这里执行需要提前运行的代码 + print("Executing code before the function") + # 然后调用原始函数 + return func(*args, **kwargs) + + return wrapper + + +@execute_before +def my_function(age): + print("My function") + print(age) + + +# 调用my_function将会先执行装饰器中的代码,然后再执行my_function +my_function(9999) diff --git a/serve/serve/__pycache__/__init__.cpython-311.pyc b/serve/serve/__pycache__/__init__.cpython-311.pyc index 0309f0396084ba79a1648b993ee5f633bcd64699..3cc6d5352e86042bf7290c760d526c2653023788 100644 GIT binary patch literal 936 zcmah{&ubGw6n?YW*sV#L#wg@u7h91Wl0$P5DLqJ4D42`lp+w@EourG|AIxs78zMvq zm{JfgQm;a3ErojRsegfo1ab-rf-UB_5(M$&o6QfJA~?JA&6~Gxzc=rDvloe61RRgQ zTq%Ag0N?p$Gy+4Te-n*uP@w^9KtUx9*hSC5C=S+$0F z<_DJL`Y#LDm0P*HTAAj0pN@Zg-0B@3_YObgPIvZBjy6w@wsMy1teeKfN2*(8)1@?} z8JJmDc*c~j7)pui)NoR^YdciW*_1t}L(JzjLv!-^wB>fEHke{rlvU@bUkJ?)Do8Jt z&4N<4m(#-lF0Fk7;ddQQrATXLu`OjfQl=$kzD46r=k3E*bm9FY1pZ13eGG+tl$=Ru zFn$kg&hbQM)3|hJCiAffI=TAxJObwM1TlEsgMUC6!tr{Rg)nZS`CLan`?nGP*UPh= zuEF_EtKeUjYUsW@ZX*+sHc7exRMzGv9TpPO-TbK4Y!?0eU^c&2D3mzeOtr;CM@+QD z#8=$Szglgq*8Rt?K#QWLSyYMF@Bhxi+~Op@P=BN)-Bc@Oy3Ate^Ch~6h8G}&c)}Ek ndoYH}Ak2D#K%yQX{0!i>adqGb0}0nd&6PI9IuL7(UO&-alqKQE delta 117 zcmZ3%{(#YbIWI340}%XcU`zwik3j?sFhUuh*?^4c3@Hr344RC7D;bKIfc(!O$;rBm nr8>VjY;yBcN^?@}idcbSAYH}$K;i>4BO~Jn1{hJq3={(ZqpB0) diff --git a/serve/serve/models/user.py b/serve/serve/models/user.py index 792b2c4..b3c76ef 100644 --- a/serve/serve/models/user.py +++ b/serve/serve/models/user.py @@ -1,12 +1,35 @@ from mongoengine import Document, EmbeddedDocument, fields -class SubjectModel(EmbeddedDocument): - subjectName = fields.StringField() - subjectScore = fields.IntField() +class ChildrenModel(EmbeddedDocument): + index = fields.StringField(max_length=30) + name = fields.StringField(max_length=30) + + +class AsideDataModel(EmbeddedDocument): + icon = fields.StringField(max_length=50) + index = fields.StringField(max_length=30) + name = fields.StringField(max_length=30) + children = fields.ListField(fields.EmbeddedDocumentField(ChildrenModel)) + + +class MetaModel(EmbeddedDocument): + name = fields.StringField(max_length=30) + url = fields.StringField(max_length=30) + + +class RouterDataModel(EmbeddedDocument): + name = fields.StringField(max_length=30) + url = fields.StringField(max_length=30) + path = fields.StringField(max_length=30) + meta = fields.EmbeddedDocumentField(MetaModel) class UserModel(Document): + avatar = fields.StringField(max_length=30) username = fields.StringField(max_length=30) password = fields.StringField(max_length=30) - subjects = fields.ListField(fields.EmbeddedDocumentField(SubjectModel)) + authData = fields.StringField(max_length=50) + asideData = fields.ListField(fields.EmbeddedDocumentField(AsideDataModel)) + RouterData = fields.ListField(fields.EmbeddedDocumentField(RouterDataModel)) + userType = fields.StringField(max_length=30) diff --git a/serve/serve/utils/__pycache__/pyjwt.cpython-311.pyc b/serve/serve/utils/__pycache__/pyjwt.cpython-311.pyc index 51ec8ba0e6fb66c0f1c48fbec614d7b0339d41db..65b50db7820c31f55f6e0a7753506efaae6c7980 100644 GIT binary patch delta 746 zcmaJ;O=uHA6rTM{HXAn^thSrjY9Ohw(1VCd7f}fadeKYFp?D~vv(>Flw#;sbLNw8f zJyfKw2a$+^)E_(;MA3_gAeciB8_1z7270hs5F{W%j=o6~iU>a5eEWXBd3^JBMSdVh zp31U>z*gJ4XFJ?-h}mVel(GK;wyhxr01nnz_XNMMLUVB|pJAs^29?ldZVHtcEp*lwPG=4tJ_0Y6a`P7~VmcS| zw$D@frUzn+5t!>(myE*3+gF<(ZhoshG&f=Y8tV%NAr>Kffw0Z``tH`o?U�KGOs; z1RXzs-3C9-jJQAfctxd^D2CNygDz*fH<=`%ybF$f9iWOjtSIPhbx%!tbo5Q6ajKzv zYPP9nTWWSuUW*Rj;}@@a;#jvGPIM3}=-aR!)9QyjWsJyLupV<*$Shw4? zsg@gwBzml*CGPbQz{e1imfZJ(zLWmMp5W(*#A&R$VjzD&Vn#dYZ-|E&koGV1uKfXA CEXfc6 delta 737 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 diff --git a/serve/serve/views/user.py b/serve/serve/views/user.py index 098659b..872505a 100644 --- a/serve/serve/views/user.py +++ b/serve/serve/views/user.py @@ -5,30 +5,34 @@ from serve.utils.connectdb import connectdb from bson.objectid import ObjectId from serve.middleware.handleErrorMethod import handleErrorMethod from serve.middleware.handleEmpty import handleEmpty -from serve.utils.pyjwt import get_jwt_token,decode_jwt_token +from serve.utils.pyjwt import get_jwt_token, decode_jwt_token collection = connectdb('user_model') +def handleUserData(user): + user['_id'] = str(user['_id']) + return user + + +# 解码字节字符串并解析为 JSON 数据 +def decodeBody(request): + body_str = request.body.decode('utf-8') + data = json.loads(body_str) + return data + + def createUser(request): result = handleErrorMethod(request.method, 'POST') - if result[0]: - data = json.loads(request.body) - print(data) - data1 = { - 'username': 'Alice', - 'password': '123', - 'subjects': [ - { - 'subjectName': '1234', - 'subjectScore': 90 - } + ret = decode_jwt_token(request.META.get('HTTP_AUTHORIZATION')) + if ret['code'] == 2000: + data = decodeBody(request) + collection.insert_one(data) + return JsonResponse({"code": 2000, "msg": "添加成功"}) + else: + return JsonResponse(ret) - ] - } - collection.insert_one(data1) - return JsonResponse({"code": 2000, "msg": "添加成功"}) else: return JsonResponse(result[1]) @@ -36,11 +40,17 @@ def createUser(request): def deleteUser(request): result = handleErrorMethod(request.method, 'DELETE') if result[0]: - _ids = ['660188e85f5269231b716281'] - filter_criteria = {'_id': {'$in': [ObjectId(_id) for _id in _ids]}} - deleteResult = collection.delete_many(filter_criteria) - res = handleEmpty(deleteResult.deleted_count, '删除') - return JsonResponse(res) + ret = decode_jwt_token(request.META.get('HTTP_AUTHORIZATION')) + if ret['code'] == 2000: + data = decodeBody(request) + _ids = list(data['_ids']) + filter_criteria = {'_id': {'$in': [ObjectId(_id) for _id in _ids]}} + deleteResult = collection.delete_many(filter_criteria) + res = handleEmpty(deleteResult.deleted_count, '删除') + return JsonResponse(res) + else: + return JsonResponse(ret) + else: return JsonResponse(result[1]) @@ -48,14 +58,18 @@ def deleteUser(request): def updateUser(request): result = handleErrorMethod(request.method, 'PUT') if result[0]: - _id = '6601b0749157ae8a26e2af7b' - update_data = { - 'username': 'juuuujjj', - 'password': 'hhhhuuuuh3' - } - updateResult = collection.update_one({'_id': ObjectId(_id)}, {"$set": update_data}) - res = handleEmpty(updateResult.modified_count, '更新') - return JsonResponse(res) + ret = decode_jwt_token(request.META.get('HTTP_AUTHORIZATION')) + if ret['code'] == 2000: + data = decodeBody(request) + _id = data['_id'] + update_data = data['userData'] + print(_id) + updateResult = collection.update_one({'_id': ObjectId(_id)}, {"$set": update_data}) + res = handleEmpty(updateResult.modified_count, '更新用户') + return JsonResponse(res) + else: + return JsonResponse(ret) + else: return JsonResponse(result[1]) @@ -63,36 +77,75 @@ def updateUser(request): def getUser(request): result = handleErrorMethod(request.method, 'GET') if result[0]: - _id = '660195d50d5cb377419134f7' # 替换为你要查找的文档的 _id - user = collection.find_one({'_id': ObjectId(_id)}) - if user: - user['_id'] = str(user['_id']) - return JsonResponse(user) + ret = decode_jwt_token(request.META.get('HTTP_AUTHORIZATION')) + if ret['code'] == 2000: + _id = request.GET.get('_id', None) + user = collection.find_one({'_id': ObjectId(_id)}) + if user: + user['_id'] = str(user['_id']) + return JsonResponse(user) + else: + return JsonResponse({"code": 1000, "msg": "数据不存在"}) else: - return JsonResponse({"code": 1000, "msg": "数据不存在"}) + return JsonResponse(ret) + + else: + return JsonResponse(result[1]) + + +def getAllUser(request): + result = handleErrorMethod(request.method, 'GET') + if result[0]: + ret = decode_jwt_token(request.META.get('HTTP_AUTHORIZATION')) + if ret['code'] == 2000: + pageSize = int(request.GET.get('pageSize', None)) + pageIndex = int(request.GET.get('pageIndex', None)) + # 计算要跳过的文档数量 + skip_count = (pageIndex - 1) * pageSize + # 执行分页查询 + cursor = collection.find().skip(skip_count).limit(pageSize) + # 将查询结果转换为列表 + result = [{**doc, '_id': str(doc['_id'])} for doc in cursor] + # 构建JSON格式的响应 + response_data = { + 'total': collection.count_documents({}), # 获取总文档数 + 'data': result, + 'code': 2000 + } + return JsonResponse(response_data) + else: + return JsonResponse(ret) + else: return JsonResponse(result[1]) def loginUser(request): result = handleErrorMethod(request.method, 'POST') - token = get_jwt_token('abc') - if result[0]: + data = decodeBody(request) + query = { + "$and": [ + {"username": data['username']}, + {"password": data['password']} + ] + } + user = collection.find_one(query) + if user: + token = get_jwt_token(data['username'], data['password']) + return JsonResponse({"code": 2000, "msg": "登陆成功", "token": token}) + else: + return JsonResponse({"code": 1000, "msg": "数据不存在"}) - return JsonResponse({"code": 2000, "msg": "登陆成功", "token": token}) else: return JsonResponse(result[1]) def testUser(request): result = handleErrorMethod(request.method, 'POST') - data = decode_jwt_token( - "eyJhbGciOiJIUzI1NiIsInR5cCsI6IkpXVCJ9.eyJleHAiOjE3MTE1MDIzMDcsImlhdCI6MTcxMTUwMjI5NywiZGF0YSI6eyJ1c2VybmFtZSI6ImFiYyIsInJvbGVfZGF0YSI6ImRlZmF1bHQifX0.KYpzmz0RWqyAMI3P7UN2I_TdrZoNaXafrFcZuSajsqQ") - print(data) - + token = request.META.get('HTTP_AUTHORIZATION') + data = decode_jwt_token(token) if result[0]: - return JsonResponse(data) else: return JsonResponse(result[1]) @@ -103,6 +156,7 @@ user_url = [ path('user/delete', deleteUser), path('user/update', updateUser), path('user/get', getUser), + path('user/get-all', getAllUser), path('user/login', loginUser), path('user/test', testUser), ]