Exemple #1
0
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)
Exemple #2
0
    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})
Exemple #3
0
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)
Exemple #4
0
 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]
Exemple #5
0
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)
Exemple #6
0
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)
Exemple #7
0
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]
Exemple #11
0
 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)
Exemple #12
0
 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}
Exemple #13
0
    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}
Exemple #14
0
    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}
Exemple #15
0
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()),
]