def patch(self, request, *args, **kwargs): # 获取请求数据,并生成对应slug stock_name = request.data["name"].strip(" ").strip("\r").strip("\n").strip("\t") stock_tag = request.data["tag"].strip(" ").strip("\r").strip("\n").strip("\t") stock_desc = request.data["describe"] stock_slug = request.data["slug"] stock_author_slug = request.COOKIES.get("slug") log.info("Stock {}-{} Patch Request ".format(stock_slug, stock_name)) # 先检查用户是不是注册用户,可能有爬虫程序之类的 try: User.objects.get(slug=stock_author_slug) except ObjectDoesNotExist: log.warn("User {} Maybe Use Script To Operate Our Site ".format(stock_author_slug)) return JsonResponse({"errorCode":random.random()}, safe=False, status=200) # 之后检查新建的知识库是否与之前的重复 try: stock = Stock.objects.get(slug=stock_slug) stock.name = stock_name stock.tag = stock_tag stock.describe = stock_desc if request.data.get("cover", "") != "": stock.cover = request.data["cover"] stock.save() log.info("Stock {}-{} Parse Success".format(stock_slug, stock_name)) except ObjectDoesNotExist: log.warn("Stock {} Is Not In Database So We Return Error ".format(stock_slug)) return JsonResponse({"errorCode":1, "desc":"知识库不存在,无法更新"}, safe=False, status=200) return JsonResponse({"errorCode":0, "desc":"更新成功"}, safe=False, status=200)
def get(self, request, *args, **kwargs): # 用于用户的登陆验证 email = request.GET.get("email", "") password = request.GET.get("password", "") try: user_info = User.objects.get(email=email, password=md5(password)) content = UserSerializer(user_info).data content["errorCode"] = 0 log.info("Email : {} Request Login In Success".format(email)) return JsonResponse(content, status=200) except ObjectDoesNotExist: log.info("Email : {} , password : {}, Request Login In Error".format(email, password)) return JsonResponse({"errorCode": 1, "desc":"诶呀!! 不明入侵者!!"}, status=200)
def get(self, request, *args, **kwargs): email = request.GET.get("email", "") log.info("Email: {} Acquire Sign Up Random Code".format(email)) try: User.objects.get(email=email) log.info("Email: {} Has Already Sign Up".format(email)) return JsonResponse({"errorCode": 1, "desc": "欸? 这个邮箱已经注册过啦"}, status=200) except ObjectDoesNotExist: if is_email(email): redis_conn = get_redis_connection("default") # 先检查之前有没有发过 remain_time = redis_conn.ttl(email) if remain_time <= 0: pQueueManager.push("SendEmailCodeQueue", email) return JsonResponse({"errorCode": 0, "desc": "验证码已经上路~~"}, status=200) else: return JsonResponse({"errorCode": 1, "desc": "拜托..验证码已经发过啦, {} 秒后再来呗".format(remain_time)}, status=200) return JsonResponse({"errorCode": 1, "desc": "诶..邮箱格式好像不对, 检查一下呗"}, status=200)
def post(self, request, *args, **kwargs): # 获取请求数据,并生成对应slug stock_name = request.data["name"].strip(" ").strip("\r").strip("\n").strip("\t") stock_tag = request.data["tag"].strip(" ").strip("\r").strip("\n").strip("\t") stock_cover = request.data["cover"] stock_desc = request.data["describe"] stock_author_slug = request.COOKIES.get("slug") stock_author = None stock_upgrade_date = time.strftime("%Y-%m-%d", time.localtime()) stock_slug = generate_slug("Stock", "{}".format(stock_name)) log.info("Stock {}-{} Parse Begin ".format(stock_slug, stock_name)) # 先检查用户是不是注册用户,可能有爬虫程序之类的 try: stock_author = User.objects.get(slug=stock_author_slug) except ObjectDoesNotExist: log.warn("User {} Maybe Use Script To Operate Our Site ".format(stock_author_slug)) return JsonResponse({"errorCode":random.random()}, safe=False, status=200) # 之后检查新建的知识库是否与之前的重复 try: Stock.objects.get(slug=stock_slug) log.warn("Stock {} Is Already In Database So We Return Error ".format(stock_slug)) return JsonResponse({"errorCode":1, "desc":"知识库名称重复"}, safe=False, status=200) except ObjectDoesNotExist: stock = Stock() stock.name = stock_name stock.author = stock_author stock.slug = stock_slug stock.upgrade_date = stock_upgrade_date stock.cover = stock_cover stock.tag = stock_tag stock.describe = stock_desc stock.save() log.info("Stock {}-{} Parse Success".format(stock_slug, stock_name)) return JsonResponse({"errorCode":0, "desc":"创建成功,前往我的知识库查看或扩展内容"}, safe=False, status=200)
def post(self, request, *args, **kwargs): # 用于用户的注册请求 email = request.POST.get("email", "") try: user_info = User.objects.get(email=email) log.info("Email : {} Request Sign Up Failed, Because Signed Already".format(email)) return JsonResponse({"errorCode": 1, "desc": "欸? 这个邮箱已经注册过啦"}, status=200) except ObjectDoesNotExist: user = UserSerializer(data=request.POST) if user.is_valid(): # 这里将信息保存后,还要将信息返回,为了将页面切换到登录状态 user.save() content = UserSerializer(User.objects.get(email=email)).data content["errorCode"] = 0 log.info("Email : {} Request Sign Up Success".format(email)) return JsonResponse(content, status=200) else: log.info("Email : {} Request Sign Up Failed Because Of {}".format(email, user.errors)) return JsonResponse({"errorCode": 1, "desc": "由于宇宙射线原因, 本次注册失败了, 请等管理员修复..."}, status=200)
def post(self, request, *args, **kwargs): # 获取头部中的消息,并打印在日志中 message = request.POST.get("message", "") log.info("[ ReminderInfo ] We Receive A Message : {}".format(message)) return JsonResponse({"errorCode": 0, "desc": "感谢你的留言"}, status=200)
def stat(self): log.info( "[ ProcessQueue ] Queue {} Routine Report , Current Size: {}, Done Size: {}" .format(self.queue_name, self.queue_name.qsize(), self.done_count))