def tokens(request): ''' 创建token == 登录 :param request: :return: ''' if not request.method == 'POST': result = {'code': 101 , 'error': 'Please use POST'} return JsonResponse(result) #前端地址 http://127.0.0.1:5000/login #获取前端传来的数据/生成token #获取-校验密码-生成token #获取前端提交的数据 print(request.body) json_str = request.body if not json_str: result = {'code': 102, 'error': 'Please give me json'} return JsonResponse(result) json_obj = json.loads(json_str) username = json_obj.get('username') password = json_obj.get('password') # username = request.POST.get('username') # password = request.POST.get('password') if not username: result = {'code':103, 'error': 'Please give me username'} return JsonResponse(result) if not password: result = {'code':104, 'error': 'Please give me password'} return JsonResponse(result) #####校验数据##### user = UserProfile.objects.filter(username=username) if not user: result = {'code':105, 'error': 'username or password is wrong !! '} return JsonResponse(result) user = user[0] m = hashlib.md5() m.update(password.encode()) if m.hexdigest() != user.password: result = {'code': 106, 'error': 'username or password is wrong'} return JsonResponse(result) #make token token = make_token(username) result = {'code':200, 'username':username, 'data':{'token':token.decode()}} # 前端会有 carts_data = json_obj.get('carts') carts_obj = CartsView() carts_len = carts_obj.merge_carts(user.id,carts_data) result['carts_count'] = carts_len return JsonResponse(result)
def post(self, request): """ Cautions,verify_url :此处发送前端的地址。 """ data = json.loads(request.body) username = data.get('uname') email = data.get('email') password = data.get('password') phone = data.get('phone') carts_data = data.get('carts') if len(password) < 6 or len(password) > 12: result = {'code': 101990, 'error': 'Password length is wrong'} return JsonResponse(result) if len(username) < 6 or len(username) > 11: result = {'code': 101991, 'error': 'Username length is wrong'} return JsonResponse(result) if carts_data: carts_data = json.loads(carts_data) # 优先查询当前用户名是否已存在 old_user = UserProfile.objects.filter(username=username) if old_user: result = {'code': 10199, 'error': 'Your username is already existed'} return JsonResponse(result) m = hashlib.md5() m.update(password.encode()) try: user = UserProfile.objects.create(username=username, password=m.hexdigest(),email=email, phone=phone) except Exception as e: return JsonResponse({'code': 10198, 'error': 'Server is busy'}) # 此链接是通过用户名和code中间拼接了/ try: code = "%d" % random.randint(1000, 9999) code_str = code + '/' + username # 生成激活链接: active_code = base64.urlsafe_b64encode(code_str.encode(encoding='utf-8')).decode('utf-8') # TODO : 用户激活链接永久有效,可以根据自己的喜好去设置。 EMAIL_CACHE.set("email_active_%s" % username, code, 60*60*24*3) verify_url = settings.CLIENT_HOST + '/dadashop/templates/active.html?code=%s' % (active_code) token = make_token(username) send_active_email.delay(email, verify_url) #合并购物车 carts_obj = CartsView() carts_len = carts_obj.merge_carts(user.id,carts_data) #res = merge_cart(user,token,cart_data) except Exception as e: return JsonResponse({'code':10111,'error':'something bad!'}) return JsonResponse({'code': 200, 'username': username, 'data':{'token': token.decode()},'carts_count':carts_len})
def tokens(request): if request.method != 'POST': return JsonResponse({ 'code': 10200, 'error': 'Please use POST instead.' }) json_str = request.body data = json.loads(json_str) username = data['username'] password = data['password'] # TODO 校验参数 old_users = UserProfile.objects.filter(username=username) if not old_users: return JsonResponse({ 'code': 10201, 'error': 'Username or password is wrong.' }) user = old_users[0] m = hashlib.md5() m.update(password.encode()) if user.password != m.hexdigest(): return JsonResponse({ 'code': 10202, 'error': 'Username or password is wrong.' }) token = make_token(username) result = { 'code': 200, 'username': username, 'data': { 'token': token.decode() }, 'carts_count': 0 } carts_data = data.get('carts') carts_obj = CartsView() carts_len = carts_obj.merge_carts(user.id, carts_data) result['carts_count'] = carts_len return JsonResponse(result)
def get_carts_order_list(self, user_id): """ :param skus: :param cart_dict: :return: sku_list(sku列表) """ sku_list = CartsView().get_carts_list(user_id) print(sku_list) return [s for s in sku_list if s['selected'] == 1]
def tokens(request): if request.method != 'POST': result = {'code': 10200, 'error': 'Please use POST'} return JsonResponse(result) # 获取数据 json_str = request.body json_obj = json.loads(json_str) username = json_obj['username'] password = json_obj['password'] #TODO 校验参数 #校验用户名 密码 old_users = UserProfile.objects.filter(username=username) if not old_users: result = {'code': 10201, 'error': 'The username or password is wrong!'} return JsonResponse(result) user = old_users[0] m = hashlib.md5() m.update(password.encode()) if m.hexdigest() != user.password: result = {'code': 10202, 'error': 'The username or password is wrong!'} return JsonResponse(result) #签发token token = make_token(username) result = { 'code': 200, 'username': username, 'data': { 'token': token.decode() }, 'carts_count': 0 } #合并购物车 carts_data = json_obj.get('carts') carts_obj = CartsView() carts_len = carts_obj.merge_carts(user.id, carts_data) result['carts_count'] = carts_len return JsonResponse(result)
def tokens(request): #{"username":"******","password":"******","carts":null} json_str = request.body json_obj = json.loads(json_str) username = json_obj['username'] password = json_obj['password'] #参数检查 #获取用户 try: user = UserProfile.objects.get(username=username) except Exception as e: print('--get user error is') print(e) result = {'code':10200, 'error': 'The username or password is wrong'} return JsonResponse(result) m = hashlib.md5() m.update(password.encode()) if m.hexdigest() != user.password: result = {'code': 10201, 'error': 'The username or password is wrong'} return JsonResponse(result) #签发token token = make_token(username) result = {'code':200, 'username':username, 'data':{'token':token.decode()}, 'carts_count':0} #合并购物车 carts_data = json_obj.get('carts') carts_obj = CartsView() carts_len = carts_obj.merge_carts(user.id, carts_data) result['carts_count'] = carts_len return JsonResponse(result)
from datetime import datetime from django.db import transaction from django.http import JsonResponse from django.shortcuts import render from django.views import View from tools.login_dec import login_check from user.models import Address from carts.views import CartsView from django.conf import settings from .models import * from goods.models import SKU # Create your views here. newCartsView = CartsView() class AdvanceView(View): def get_address(self, user_id): all_address = Address.objects.filter(user_profile_id=user_id, is_active=True) if not all_address: #用户还没有地址 return [] #需求:默认地址要显示在所有地址最前面 address_default = [] address_normal = [] for addr in all_address: addr_dic = { 'id': addr.id,
def del_carts_order_data(self, uid, sku_ids): carts_obj = CartsView() for sku_id in sku_ids: carts_obj.del_carts_data(uid, sku_id)
def get_carts_order_data(self, uid): carts_obj = CartsView() all_data = carts_obj.get_carts_all_data(uid) return {k: v for k, v in all_data.items() if v[1] == 1}
def get_carts_order_list(self, uid): cart_obj = CartsView() sku_list = cart_obj.get_carts_list(uid) return [s for s in sku_list if s['selected'] == 1]
def delete_redis_order(self, sku_ids, user_id): carts = CartsView() for sku_id in sku_ids: carts.del_carts_data(user_id, sku_id)
def get_carts_dict(self, user_id): carts_dict = CartsView().get_carts_datas(user_id) print("购物车", len(carts_dict)) # 将选中的商品 转化成 {id:count} return {k: v[0] for k, v in carts_dict.items() if v[1] == 1}
def get_carts_order_data(self, uid): carts_obj = CartsView() # carts_1 - {'sku_id':[count, select]} all_data = carts_obj.get_carts_all_data(uid) return {k: v for k, v in all_data.items() if v[1] == 1}
def get_carts_order_data(self, uid): carts_obj = CartsView() all_data = carts_obj.get_carts_all_data(uid) #{skuid:[count, selected]} return {k:v for k, v in all_data.items() if v[1] == 1}
from django.conf.urls import url from carts.views import CartsView, CartsSelectAllView, CartsSimpleView urlpatterns = [ # 购物车 url(r'carts/$', CartsView.as_view(), name='cart'), # 全选购物车 url(r'carts/selection/$', CartsSelectAllView.as_view()), # 是展示简单购物车 url(r'carts/simple/$', CartsSimpleView.as_view()), ]