Exemplo n.º 1
0
    def post(self):
        parse = parser.parse_args()
        email = parse.get('email')
        password = parse.get('password')

        responseData = {'time': str(int(time.time()))}

        # 邮箱校验
        users = User.query.filter(User.email == email)
        if users.count() > 0:  # 存在

            # 获取对应用户
            user = users.first()

            # 是否被删除
            if user.isdelete == True:
                return format_response(msg='登录失败', status=401, err='该用户已被注销')

            # 密码校验
            #if user.password == generate_password(password):
            if check_password_hash(user.password, password):  #  密码正确
                if user.isactive == False:  # 未激活
                    # 发邮件
                    msg = Message(
                        subject="TPP激活邮件",  # 主题
                        # sender="*****@*****.**",    # 发件人
                        recipients=[user.email]  # 收件人
                    )
                    active_url = 'http://127.0.0.1:5000/api/v1/useractive/?token=' + user.token
                    body_html = render_template('useractive.html',
                                                name=user.name,
                                                active_url=active_url)
                    msg.html = body_html  # 邮件正文
                    mail.send(msg)  # 发送操作

                    # 超时处理
                    # cache.set(user.token, user.id, timeout=30)

                    return format_response(msg='登录失败',
                                           status=401,
                                           err='用户还未激活,请激活后登录(激活邮件已发送成功)!')

                # 成功操作
                user.token = get_token()
                db.session.add(user)
                db.session.commit()

                return format_response(data=user, msg='登录成功', status=200)

            else:  # 密码错误
                return format_response(msg='登录失败', status=401, err='密码错误')

        else:  # 不存在
            return format_response(msg='登录失败', status=401, err='邮箱不存在')
Exemplo n.º 2
0
    def get(self):
        parse = parser.parse_args()
        city = parse.get('city')
        district = parse.get('district')
        sort = parse.get('sort')
        limit_n = parse.get('limit')

        if city == '全部':
            cinemas = Cinemas.query.all()

        else:
            cinemas = Cinemas.query.filter(Cinemas.city == city)

        if district:
            cinemas = cinemas.filter(Cinemas.district == district)

        if sort == 1:
            cinemas = cinemas.order_by(-Cinemas.score)
        elif sort == 2:
            cinemas = cinemas.order_by(Cinemas.score)

        if limit_n:
            cinemas = cinemas.limit(limit_n)

        return format_response(msg='获取影院信息成功', status=200, data=cinemas)
Exemplo n.º 3
0
    def post(self):
        # 获取数据
        parse = parser.parse_args()
        token = parse.get('token')
        oldpd = parse.get('oldpd')
        newpd = parse.get('newpd')

        user = User.query.filter(User.token == token).first()

        if check_password_hash(user.password, oldpd):
            user.password = generate_password_hash(newpd)
            db.session.add(user)
            db.session.commit()
            return format_response(msg='修改密码成功', status=200)
        else:
            return format_response(msg='修改密码失败', status=400, err='旧密码输入有误')
Exemplo n.º 4
0
    def get(self):
        goods = Goods.query.all()
        # if not goods.count():
        #     return format_response(msg='获取界面数据失败!',status=406,err='没有界面数据!')
        #

        return format_response(msg='获取界面数据成功!', status=200, data=goods)
Exemplo n.º 5
0
    def post(self):
        responsedata = {'time': str(int(time.time()))}
        parse = parser.parse_args()
        telephone = parse.get('telephone')
        password = parse.get('password')  # 加密处理
        users = User.query.filter(User.telephone == telephone)
        if not users.count():
            return format_response(msg='登录失败!', status=406, err='用户不存在!')
        user = users.first()
        if user.isdelete:
            return format_response(msg='登录失败!', status=406, err='用户已经注销!')
        if not check_password_hash(user.password, password):  #校验密码
            return format_response(msg='登录失败!', status=406, err='密码错误!')
        else:
            if not user.isactive:  #激活
                # 邮件信息
                msg = Message(
                    subject='Tpp激活邮件',
                    recipients=[user.email],  # 收件人邮箱
                    sender="*****@*****.**")  # 发件人
                body_html = render_template(
                    'mail_send.html',
                    name=user.name,
                    active_url='http://127.0.0.1:5000/api/v1/useractive?token='
                    + user.token)
                msg.html = body_html
                # 发送邮件
                mail.send(msg)

                # 状态保持,即控制注册链接的有效时间
                cache.set(user.token, user.id, timeout=60)
                return format_response(msg='登录失败!',
                                       status=406,
                                       err='用户还没有激活,激活链接已经重新发送!!')
            user.token = get_token()
            db.session.add(user)
            db.session.commit()

            return format_response(msg='登录成功!', status=200, data=user)
Exemplo n.º 6
0
    def get(self):
        parse = parser.parse_args()
        phone = parse.get('phone')

        appid = 1400112809
        appkey = '8d8b808cb9073023631d241951f49fb4'
        template_id = 166915
        sms_sign = '钟远智工作经验分享'
        num = 1  # 超时时间 【单位是分钟】

        ssender = SmsSingleSender(appid, appkey)
        # 参数一: 验证码
        # 参数二: 超时时间
        random_str = random.randrange(1000, 10000)
        params = [random_str, num]

        # 超时处理
        # phone:ramdom_str  [key:value]
        # cache.set(str(phone), random_str, 60*num)

        try:
            result = ssender.send_with_param(
                86,
                phone,
                template_id,
                params,
                sign=sms_sign,
                extend="",
                ext="")  # 签名参数未提供或者为空时,会使用默认签名发送短信
            return format_response(msg='短信发送成功', status=200)
        except HTTPError as e:
            print(e)
            return format_response(msg='短信发送失败', status=400, err=e)
        except Exception as e:
            print(e)
            return format_response(msg='短信发送失败', status=400, err=e)
Exemplo n.º 7
0
    def post(self):
        parse = parser.parse_args()
        token = parse.get('token')

        user = User.query.filter(User.token == token).first()

        # 图片数据
        img_file = parse.get('img')
        # 图片名称
        img_name = '%d-%s' % (user.id, secure_filename(img_file.filename))
        # 文件路径
        # upload_dir = os.path.join(BASE_DIR, 'static/img/')
        # print(upload_dir)
        img_file_path = os.path.join(UPLOAD_RID, img_name)
        print(img_file_path)
        # 保存文件
        img_file.save(img_file_path)

        # 更新用户信息
        user.icon = img_name
        db.session.add(user)
        db.session.commit()

        return format_response(msg='头像上传成功', status=200, data=user)