예제 #1
0
def removeStaff(request):
    pk = request.POST.get('pk')
    staff = User.objects.get(pk=pk)
    staff.is_staff = False
    staff.groups.remove() # 删除所有权限
    staff.save()
    return resultful.ok()
예제 #2
0
    def post(self, request):
        form = CourseForm(request.POST)
        print(request.POST)
        if form.is_valid():
            title = form.cleaned_data.get('title')
            category_id = form.cleaned_data.get('category_id')
            teacher_id = form.cleaned_data.get('teacher_id')
            video_url = form.cleaned_data.get('video_url')
            cover_url = form.cleaned_data.get('cover_url')
            price = form.cleaned_data.get('price')
            duration = form.cleaned_data.get('duration')
            profile = form.cleaned_data.get('profile')

            category = CoursesCategory.objects.get(pk=category_id)
            teacher = Teacher.objects.get(pk=teacher_id)
            Courses.objects.create(title=title,
                                   video_url=video_url,
                                   teacher=teacher,
                                   cover_url=cover_url,
                                   price=price,
                                   duration=duration,
                                   profile=profile,
                                   category=category)
            return resultful.ok()
        else:
            return resultful.params_error(message=form.get_errors())
예제 #3
0
def verify(request):
    # b = Bmob(constants.APP_ID, constants.REST_KEY)
    # result = b.sendSMSCode("16600275590","tpl_hx")
    # strData = json.loads(result.stringData)
    # print("="*10)
    # print(result)
    # if result.code == 200:
    #     cache.set("smsId",strData.get("smsId"),5*60)
    #     print("smsId:",cache.get("smsId"))
    # else:
    #     error_message1 = strData.get("error","")
    #     print("error:",error_message1)

    # check
    y = Bmob(constants.APP_ID, constants.REST_KEY)
    result2 = y.verifySMSCode("16600275590", "823805")
    print("=" * 10)
    print(result2.code)
    print(result2.status)
    print(result2.headers)
    print(result2.stringData)
    print(result2.err)
    print(result2.msg)
    strData2 = json.loads(result2.stringData)
    if result2.code == 200:
        print("success")
    else:
        error_message2 = strData2.get("error", "")
        print("error:", error_message2)
    return resultful.ok()
예제 #4
0
def remove_banner(request):
    """
    删除Banner
    """
    banner_id = request.POST.get("banner_id")
    Banner.objects.filter(pk=banner_id).delete()
    return resultful.ok()
예제 #5
0
def login_view(request):
    """
    @require_POST表示只能用post进行请求
    """
    # 获取form 表单
    form = LoginForm(request.POST)
    # judge validity
    if form.is_valid():  # 如果有效才进行验证
        telephone = form.cleaned_data.get('telephone')
        password = form.cleaned_data.get('password')
        remember = form.cleaned_data.get("remember")
        # 这里的username=telephone是因为重写的AbstractBaseUser,可以在models中看到唯一字段就是telephone
        user = authenticate(request, username=telephone, password=password)
        # 如果用户存在
        if user:
            if user.is_active:  # 如果用户可用
                login(request, user)  # 登录
                if remember:  # 如果有remember这个字段,设置session为django默认的session时间,为2周
                    request.session.set_expiry(None)
                else:
                    request.session.set_expiry(0)
                return resultful.ok()
            else:  # 用户不可用
                return resultful.unauth(message="账户没有激活")
        else:
            return resultful.params_error(message="手机号或密码错误")
    else:  # 表单验证错误
        # 这里查看forms的相关视频
        # 传递的参数错误,比如:密码长度过短
        errors = form.get_errors()
        return resultful.params_error(message=errors)
예제 #6
0
def remove_news(request):
    """
    删除新闻
    """
    pk = request.POST.get("pk")
    News.objects.get(pk=pk).delete()
    return resultful.ok()
예제 #7
0
def add_news_category(request):
    name = request.POST.get("name")
    exists = NewsCategory.objects.filter(name=name).exists()
    if not exists:
        NewsCategory.objects.create(name=name)
        return resultful.ok()
    else:
        return resultful.params_error(message="该分类已存在")
예제 #8
0
def del_news_category(request):
    pk = request.POST.get('pk')
    try:
        cur_news_category = NewsCategory.objects.get(pk=pk)
        cur_news_category.delete()
        return resultful.ok(message="haha")
    except:
        return resultful.notfind(message="该分类不存在!")
예제 #9
0
def __sms_captcha(request):
    """
    正式方法:需要真实的手机验证码才能注册,修改方法名
    """
    b = Bmob(constants.APP_ID, constants.REST_KEY)
    telephone = request.GET.get("telephone")
    result = b.sendSMSCode(telephone, "tpl_hx")
    strData = json.loads(result.stringData)
    # 短信验证
    if result.code == 200:
        # 可用于验证是否验证过,或是否发送成功(比如电话号码不存在,就会发送不成功)
        cache.set("smsId", strData.get("smsId"), 5 * 60)
        return resultful.ok()
    else:
        error_message = strData.get("error", "")
        return resultful.captcha_error(message=error_message)
    print(cache.get("smsId"))
    return resultful.ok()
예제 #10
0
def upload_file(request):
    """
    上传文件
    """
    file = request.FILES.get("file")
    name = file.name
    with open(os.path.join(settings.MEDIA_ROOT, name), "wb") as fp:
        for chunk in file.chunks():
            fp.write(chunk)
    url = request.build_absolute_uri(settings.MEDIA_URL + name)
    return resultful.ok(data={"url": url})
예제 #11
0
def __sms_captcha(request):
    """
    将短信验证码放入memcached中?bmob不能获取

    """
    telephone = request.GET['telephone']
    print(telephone)
    # 用于测试短信验证码
    cache.set("smsId","123456")
    print("=="+cache.get("smsId"))
    return resultful.ok()
예제 #12
0
def edit_news_category(request):
    form = EditNewsCategoryForm(request.POST)
    if form.is_valid():
        pk = form.cleaned_data['pk']
        name = form.cleaned_data['name']
        try:
            NewsCategory.objects.filter(pk=pk).update(name=name)
        except:
            return resultful.params_error(message='该分类不存在')
    else:
        return resultful.params_error(message=form.get_errors())
    return resultful.ok()
예제 #13
0
def sms_captcha(request):
    """
    将短信验证码放入memcached中?bmob不能获取
    {'code': 400}
    {'status': 'Bad Request'}
    {'headers': <http.client.HTTPMessage object at 0x054F1F30>}
    {'stringData': '{"code":10022,"error":"模板:tpl_hfx 不存在"}'}或{'stringData':{"smsId":"108674070"}}
    {'err': 'Bad Request'}
    {'msg': None}
    """
    cache.set("smsId", "123456")
    print(cache.get("smsId"))
    return resultful.ok()
예제 #14
0
def register(request):
    form = RegisterForm(request.POST)
    if form.is_valid():
        telephone = form.cleaned_data.get('telephone')
        username = form.cleaned_data.get('username')
        password = form.cleaned_data.get('password1')
        user = User.objects.create_user(telephone=telephone,
                                        username=username,
                                        password=password)
        login(request, user)
        return resultful.ok()
    else:
        return resultful.params_error(message=form.get_errors())
예제 #15
0
def sms_captcha(request):
    """
    正式方法:需要真实的手机验证码才能注册,修改方法名
    {'code': 400}
    {'status': 'Bad Request'}
    {'headers': <http.client.HTTPMessage object at 0x054F1F30>}
    {'stringData': '{"code":10022,"error":"模板:tpl_hfx 不存在"}'}或{'stringData':{"smsId":"108674070"}}
    {'err': 'Bad Request'}
    {'msg': None }
    """
    b = Bmob(constants.APP_ID, constants.REST_KEY)
    telephone = request.GET.get("telephone")
    result = b.sendSMSCode(telephone, "tpl_hx")
    strData = json.loads(result.stringData)
    # 短信验证
    if result.code == 200:
        # 可用于验证是否验证过,或是否发送成功(比如电话号码不存在,就会发送不成功)
        cache.set("smsId",strData.get("smsId"),5*60)
        return resultful.ok()
    else:
        error_message = strData.get("error","")
        return resultful.captcha_error(message=error_message)
    return resultful.ok()
예제 #16
0
def edit_banner(request):
    """
    编辑Banner
    """
    form = EditBannerForm(request.POST)
    if form.is_valid():
        banner_id = form.cleaned_data.get("banner_id")
        priority = form.cleaned_data.get("priority")
        image_url = form.cleaned_data.get("image_url")
        link_to = form.cleaned_data.get("link_to")
        Banner.objects.filter(pk=banner_id).update(image_url=image_url,
                                                   link_to=link_to,
                                                   priority=priority)
        return resultful.ok()
    else:
        return resultful.params_error(message=form.get_errors())
예제 #17
0
 def post(self, request):
     form = EditNewsForm(request.POST)
     if form.is_valid():
         title = form.cleaned_data.get("title")
         desc = form.cleaned_data.get("desc")
         categpry_id = form.cleaned_data.get("category")
         content = form.cleaned_data.get("content")
         thumbnail = form.cleaned_data.get("thumbnail")
         pk = form.cleaned_data.get("pk")
         category = NewsCategory.objects.get(pk=categpry_id)
         News.objects.filter(pk=pk).update(
             category=category,
             content=content,
             desc=desc,
             thumbnail=thumbnail,
             title=title,
         )
         return resultful.ok()
     else:
         return resultful.params_error(message=form.get_errors())
예제 #18
0
 def post(self, request):
     # 表单验证数据
     # 这是通过ajax提交的
     form = WriteNewsForm(request.POST)
     if form.is_valid():
         # 保存到数据库中(创建新闻的表)
         title = form.cleaned_data.get("title")
         desc = form.cleaned_data.get("desc")
         category_id = form.cleaned_data.get("category")
         content = form.cleaned_data.get("content")
         thumbnail = form.cleaned_data.get("thumbnail")
         category = NewsCategory.objects.get(pk=category_id)
         News.objects.create(
             title=title,
             desc=desc,
             category=category,
             thumbnail=thumbnail,
             author=request.user,
             content=content,
         )
         return resultful.ok()
     else:
         return resultful.params_error(message=form.get_errors())
예제 #19
0
def qn_token(request):
    q = Auth(constants.ACCESS_KEY, constants.SECRET_KEY)
    bucket_name = "huixiong"
    token = q.upload_token(bucket_name, None, 3600)
    logging.debug(token)
    return resultful.ok(data={"token": token})