Beispiel #1
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)
Beispiel #2
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()
Beispiel #3
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())
Beispiel #4
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="该分类已存在")
Beispiel #5
0
 def post(self):
     form = ResetEmailForm(request.form)
     if form.validate():
         email = form.email.data
         g.cms_user.email = email
         db.session.commit()
         return resultful.success()
     else:
         return resultful.params_error(form.get_error())
Beispiel #6
0
 def post(self, request):
     message = UserRegister(request.POST)
     if message.is_valid():
         username = message.cleaned_data['username']
         password = message.cleaned_data['password']
         password_check = message.cleaned_data['password_check']
         if password == password_check:
             if User.objects.filter(username=username):
                 return resultful.params_error(message="该用户名已经被占用!")
             else:
                 user = User.objects.create_user(username=username)
                 user.set_password(password)
                 user.save()
                 log_user = authenticate(request, username=username, password=password)
                 login(request, log_user)
                 return resultful.result(message="注册成功~!~")
         else:
             return resultful.params_error("两次密码输入不一致!")
     else:
         return resultful.server_error(message="表单验证错误!请重试!")
Beispiel #7
0
 def post(self, request):
     message = UserLogin(request.POST)
     if message.is_valid():
         username = message.cleaned_data['username']
         password = message.cleaned_data['password']
         user = authenticate(request, username=username, password=password)
         if user:
             login(request, user)
             return resultful.result(message="登陆成功!")
         else:
             return resultful.params_error(message="账户或密码错误!请重新输入!")
     else:
         return resultful.server_error(message="表单验证失败!")
Beispiel #8
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())
Beispiel #9
0
def save_banner(request):
    """
    存储Banner
    """
    form = SaveBannerForm(request.POST)
    if form.is_valid():
        priority = form.cleaned_data.get("priority")
        image_url = form.cleaned_data.get("image_url")
        link_to = form.cleaned_data.get("link_to")
        banner = Banner.objects.create(priority=priority,
                                       image_url=image_url,
                                       link_to=link_to)
        return resultful.result(data={"banner_id": banner.pk})
    else:
        return resultful.params_error(message=form.get_errors())
Beispiel #10
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())
Beispiel #11
0
    def post(self):
        form = ResetPwdForm(request.form)
        if form.validate():
            old_pwd = form.oldpwd.data
            new_pwd = form.newpwd.data
            user = g.cms_user
            if user.check_password(old_pwd):
                user.password = new_pwd
                db.session.commit()
                return resultful.success()
            else:
                return resultful.unauth_error(message="旧密码验证失败")

        else:
            message = form.get_error()
            print(message)
            return resultful.params_error(message=message)
Beispiel #12
0
def public_comment(request):
    '''
    评论
    '''
    form = PublicCommentForm(request.POST)
    if form.is_valid():
        news_id = form.cleaned_data.get("news_id")
        content = form.cleaned_data.get("content")
        news = News.objects.get(pk=news_id)
        # 如果没有登录的话,没有用户是没法保存的。(没有用户会有一个匿名用户)
        comment = Comment.objects.create(
            content=content, news=news, author=request.user)
        # 序列化是将querySet转换成json的形式,select_related是将模型的外键数据一次性查询出来
        serializer = CommentSerializer(comment)
        return resultful.result(data=serializer.data)
    else:
        return resultful.params_error(message=form.get_errors())
Beispiel #13
0
def email_captcha():
    email = request.args.get('email')
    if email:
        source = list(string.ascii_letters)
        source.extend(map(lambda x: str(x), list(range(9))))
        captcha = "".join(random.sample(source, 6))
        zerocache.set(email, captcha)
        body = "您正在更改zerobbs登录的邮箱,验证码:%s" % captcha
        message = Message("zero_bbs更换邮箱验证",
                          recipients=["*****@*****.**"],
                          body=body)

        try:
            mail.send(message=message)
        except:
            return resultful.server_error()

        return resultful.success()
    else:
        return resultful.params_error("请输入正确的邮箱")
Beispiel #14
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())
Beispiel #15
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())