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)
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()
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())
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="该分类已存在")
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())
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="表单验证错误!请重试!")
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="表单验证失败!")
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())
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())
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())
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)
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())
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("请输入正确的邮箱")
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())
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())