django框架模拟2

from django.core.paginator import Paginator
from django.db.models import F, Q
from rest_framework.views import APIView
from rest_framework.response import Response
from .sers import *
from django.core.paginator import Paginator

class LoginView(APIView):
def post(self, request):
username = request.data.get(‘username’)
password = request.data.get(‘password’)

    user = User.objects.filter(username=username).first()

    if user and user.password == password:
        return Response({'msg': 'OK', 'code': 200, 'uid': user.id})
    else:
        return Response({'msg': '用户名密码错误', 'code': 400})

def get(self, request):
    id = request.query_params.get('id')
    user_obj = User.objects.get(pk=id)
    user_ser = UserSer(user_obj)
    return Response({'msg': 'OK', 'code': 200, 'data': user_ser.data})

class GoodsView(APIView):
def get(self,request):
num = int(request.GET.get(‘num’,1))
query = Goods.objects.all()
pan = Paginator(query,1)
query = pan.get_page(num)
ser= GoodsSer(query,many=True)
return Response({‘msg’: ‘OK’, ‘code’: 200,‘data’:ser.data,
‘num_list’:[x for x in pan.page_range]})

class GoodsInfoView(APIView):
def get(self,request):
id = request.query_params.get(‘id’)
goods_obj = Goods.objects.get(id=id)
goods_ser = GoodsSer(goods_obj)
return Response({‘msg’: ‘OK’, ‘code’: 200, ‘data’: goods_ser.data})
class CarView(APIView):
def post(self,request):
uid = request.data.get(‘user’)
goods = request.data.get(‘goods’)
money = request.data.get(‘money’)
ser = CartSer(data=request.data)
if ser.is_valid():
ser.save()
User.objects.filter(pk=uid).update(score=float(money)/10)
Goods.objects.filter(pk=goods).update(num=F(‘num’)+1)
return Response({‘msg’:‘购买成功’})
else:
print(ser.errors)
return Response({‘msg’:‘购买失败’})

class VipUpView(APIView):
def put(self,request):
id = request.GET.get(‘uid’)
print(id)
User.objects.filter(pk=id).update(vip=1)
return Response({‘msg’: ‘升级成功’, ‘code’: 200})

class SerchGoodsView(APIView):
def get(self,request):
queryset = Goods.objects.filter(num__gt=3)
ser = GoodsSer(queryset, many=True)
return Response({‘msg’: ‘OK’, ‘code’: 200, ‘data’: ser.data})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值