def adduserHandler(request): headImg = request.FILES.get("heading") username = request.POST.get("username") password = request.POST.get("pwd") email = request.POST.get("email") content = request.POST.get("content") # 判断用户名是否已经存在 # 存在,提示该用户名已存在 newusername = admain.objects.all() for item in newusername: if username == item.username: return HttpResponse(returnResult.returnResult(1, "该用户名已存在")) #判断用户是否上传了头像 if headImg == None: #判断是否有用户简介 if content == None: newuser = admain.objects.create(username=username, password=password, email=email) else: newuser = admain.objects.create(username=username, password=password, email=email, resume=content) else: # 判断文件是否过大 size = utils.getsize(headImg.size) if float(size) > 100: print("文件过大") return # 判断上传过来的文件类型是否是项目需要的: if headImg.name.split(".")[-1] not in ["jpg", "jpeg", "png"]: print("文件类型不正确") return # 把文件保存到指定的路径中 # 比方说static/headImg # 创建文件名 以及指定到保存文件的路径 filename = "headImg_" + str( int(datetime.now().timestamp() * 1000000)) + "." + headImg.name.split(".")[-1] dir = "static/headImg" utils.creatDir(dir) savePath = dir + "/" + filename # 写入文件中 with open(savePath, 'wb') as f: for file in headImg.chunks(): f.write(file) f.flush() if content == None: newuser = admain.objects.create(username=username, password=password, email=email, headimg=filename) else: newuser = admain.objects.create(username=username, password=password, email=email, headimg=filename, resume=content) return HttpResponse(returnResult.returnResult(0, "添加成功"))
def add_monitor_course_page(request): if 'url' not in request.POST or not request.POST[ 'url'] or 'shortname' not in request.POST or not request.POST[ 'shortname']: return JsonError('Must provide both URL and short name.') url, shortname = request.POST['url'], request.POST['shortname'] if not urlvalid(url): return JsonError('Invalid URL.') user_profile = request.user.profile if CoursePageMonitor.objects.filter(user_profile=user_profile, shortname=shortname).count(): return JsonError('Short name already in use.') if CoursePageMonitor.objects.filter(user_profile=user_profile, url=url).count(): return JsonError('Already monitored this page.') try: if getsize(url) > MAXIMUM_SIZE: return JsonError('Page too large') except ValueError: return JsonError( 'Cannot access url or we cannot determine the file size.') CoursePageMonitor.objects.create(user_profile=user_profile, url=url, shortname=shortname) return JsonSuccess()
def fetch(self): url = self.url if getsize(url) > MAXIMUM_SIZE: return new_hash = gethash(url) if not self.hash_data: self.hash_data = new_hash self.save() else: if new_hash != self.hash_data: msg = "There has been a change of status in your monitoring course page %s (%s)." % (self.shortname, self.url) print self.user_profile if self.user_profile.is_phone_set: cell_mail = '%s@%s' % (self.user_profile.cellphone, self.user_profile.cell_mail) send_message(toaddrs=cell_mail, msg=msg[:100]+'...') if self.user_profile.is_email_set: send_email(toaddrs=self.user_profile.email, title="Status change of course page %s" % self.shortname, msg=msg) self.hash_data = new_hash self.save()
def add_monitor_course_page(request): if ( "url" not in request.POST or not request.POST["url"] or "shortname" not in request.POST or not request.POST["shortname"] ): return JsonError("Must provide both URL and short name.") url, shortname = request.POST["url"], request.POST["shortname"] if not urlvalid(url): return JsonError("Invalid URL.") user_profile = request.user.profile if CoursePageMonitor.objects.filter(user_profile=user_profile, shortname=shortname).count(): return JsonError("Short name already in use.") if CoursePageMonitor.objects.filter(user_profile=user_profile, url=url).count(): return JsonError("Already monitored this page.") try: if getsize(url) > MAXIMUM_SIZE: return JsonError("Page too large") except ValueError: return JsonError("Cannot access url or we cannot determine the file size.") CoursePageMonitor.objects.create(user_profile=user_profile, url=url, shortname=shortname) return JsonSuccess()
def fetch(self): url = self.url if getsize(url) > MAXIMUM_SIZE: return new_hash = gethash(url) if not self.hash_data: self.hash_data = new_hash self.save() else: if new_hash != self.hash_data: msg = "There has been a change of status in your monitoring course page %s (%s)." % ( self.shortname, self.url) print self.user_profile if self.user_profile.is_phone_set: cell_mail = '%s@%s' % (self.user_profile.cellphone, self.user_profile.cell_mail) send_message(toaddrs=cell_mail, msg=msg[:100] + '...') if self.user_profile.is_email_set: send_email(toaddrs=self.user_profile.email, title="Status change of course page %s" % self.shortname, msg=msg) self.hash_data = new_hash self.save()
def resave(request): headImg = request.FILES.get("heading") oldheadimg = request.POST.get("preImg") username = request.POST.get("username") oldname = request.POST.get("oldname") print(username, oldname) password = request.POST.get("pwd") email = request.POST.get("email") uid = request.POST.get("id") content = request.POST.get("content") #判断用户名是否跟原来的一样 if username != oldname: # 判断用户名是否已经存在 # 存在,提示该用户名已存在 newusername = admain.objects.all() for item in newusername: if username == item.username: return HttpResponse(returnResult.returnResult(1, "该用户名已存在")) elif username != item.username and item == newusername[ len(newusername) - 1]: #判断用户是否更新了头像 if headImg == None: admain.objects.filter(id=uid).update(username=username, password=password, email=email, resume=content) return HttpResponse(returnResult.returnResult(0, "更改成功")) else: # 判断文件是否过大 size = utils.getsize(headImg.size) if float(size) > 100: return HttpResponse( returnResult.returnResult(2, "文件过大!")) # 判断上传过来的文件类型是否是项目需要的: if headImg.name.split(".")[-1] not in [ "jpg", "jpeg", "png" ]: return HttpResponse( returnResult.returnResult(3, "文件类型不正确!")) # 把文件保存到指定的路径中 # 创建文件名 以及指定到保存文件的路径 filename = "headImg_" + str( int(datetime.now().timestamp() * 1000000)) + "." + headImg.name.split(".")[-1] dir = "static/headImg" utils.creatDir(dir) savePath = dir + "/" + filename # 写入文件中 with open(savePath, 'wb') as f: for file in headImg.chunks(): f.write(file) f.flush() # 删除原来的图片 path1 = "static/headImg/" + oldheadimg path = os.path.join(settings.BASE_DIR, path1) os.remove(path) admain.objects.filter(id=uid).update(username=username, password=password, email=email, headimg=filename, resume=content) return HttpResponse(returnResult.returnResult(0, "更改成功")) else: # 判断用户是否更新了头像 if headImg == None: admain.objects.filter(id=uid).update(username=username, password=password, email=email, resume=content) return HttpResponse(returnResult.returnResult(0, "更改成功")) else: # 判断文件是否过大 size = utils.getsize(headImg.size) if float(size) > 100: return HttpResponse(returnResult.returnResult(2, "文件过大!")) # 判断上传过来的文件类型是否是项目需要的: if headImg.name.split(".")[-1] not in ["jpg", "jpeg", "png"]: return HttpResponse(returnResult.returnResult(3, "文件类型不正确!")) # 把文件保存到指定的路径中 # 创建文件名 以及指定到保存文件的路径 filename = "headImg_" + str( int(datetime.now().timestamp() * 1000000)) + "." + headImg.name.split(".")[-1] dir = "static/headImg" utils.creatDir(dir) savePath = dir + "/" + filename # 写入文件中 with open(savePath, 'wb') as f: for file in headImg.chunks(): f.write(file) f.flush() # 删除原来的图片 path1 = "static/headImg/" + oldheadimg path = os.path.join(settings.BASE_DIR, path1) os.remove(path) admain.objects.filter(id=uid).update(username=username, password=password, email=email, headimg=filename, resume=content) return HttpResponse(returnResult.returnResult(0, "更改成功"))
def updatearticleHandler(request): newsid = request.POST.get("newsid") title = request.POST.get("title") titlecolor = request.POST.get("color") newsmenu = request.POST.get("menu") newsimg = request.FILES.get("newsimg") oldnewsimg = request.POST.get("preImg") newcontent = request.POST.get("content") # 缩略图不存在 if newsimg == None: # 如果标题颜色不存在 if titlecolor == None: news.objects.filter(id=newsid).update(catid=newsmenu, title=title, time=datetime.now()) else: news.objects.filter(id=newsid).update(catid=newsmenu, title=title, titlt_font_color=titlecolor, time=datetime.now()) # 把修改的文章内容存到数据库中 if newcontent != None: news_content.objects.filter(newsid=newsid).update( content=newcontent) return HttpResponse(returnResult.returnResult(0, "修改成功!")) else: return HttpResponse(returnResult.returnResult(1, "修改失败,内容不能为空!")) # 新的缩略图存在 if newsimg != None: # 判断上传过来的文件类型是否是项目需要的 if newsimg.name.split(".")[-1] not in ["jpg", "jpeg", "png"]: return HttpResponse(returnResult.returnResult(1, "修改失败,文件类型不正确")) # 判断文件是否过大 size = utils.getsize(newsimg.size) if float(size) > 100: return HttpResponse(returnResult.returnResult(2, "修改失败,文件过大!")) # 创建文件名 以及指定到保存文件的路径 filename = "newsImg_" + str( int(datetime.now().timestamp() * 1000000)) + "." + newsimg.name.split(".")[-1] # 需要判断指定的文件夹存不存在,不存在就创建 dir = "static/newsimg" utils.creatDir(dir) savePath = dir + "/" + filename # 写入文件中 with open(savePath, 'wb') as f: for file in newsimg.chunks(): f.write(file) f.flush() #删除原来的图片 path1 = "static/newsimg/" + oldnewsimg path = os.path.join(settings.BASE_DIR, path1) os.remove(path) # 存入数据库中 # 如果标题颜色不存在 if titlecolor == None: news.objects.filter(id=newsid).update(catid=newsmenu, title=title, thumb=filename, time=datetime.now()) else: news.objects.filter(id=newsid).update(catid=newsmenu, title=title, titlt_font_color=titlecolor, thumb=filename, time=datetime.now()) # 把文章内容存到数据库中 if newcontent != None: news_content.objects.filter(newsid=newsid).update( content=newcontent) return HttpResponse(returnResult.returnResult(0, "修改成功!"))
def addarticleHandler(request): #接收前端提交的数据 title = request.POST.get("title") titlecolor = request.POST.get("color") newsmenu = request.POST.get("menu") newsimg = request.FILES.get("newsimg") content = request.POST.get("content") print(title, titlecolor, newsmenu, newsimg, content) #缩略图不存在的情况 if newsimg == None: #同时标题颜色不存在 if titlecolor == None: obj = news.objects.create(catid=newsmenu, title=title, num=0, time=datetime.now()) else: obj = news.objects.create(catid=newsmenu, title=title, titlt_font_color=titlecolor, num=0, time=datetime.now()) #获取刚存进去的id newsid = obj.id #把文章内容存入内容表中 obj2 = news_content.objects.create(newsid=newsid, content=content) return HttpResponse(returnResult.returnResult(0, "添加成功!")) #缩略图存在的情况 if newsimg != None: #判断传过来的文件是否是项目需要的 if newsimg.name.split('.')[-1] not in ["jpg", "jpeg", "png"]: return HttpResponse(returnResult.returnResult(1, "添加失败,文件格式不正确!")) #判断文件是否过大 size = utils.getsize(newsimg.size) if float(size) > 100: return HttpResponse(returnResult.returnResult(1, "添加失败,文件过大!")) #创建文件名以及指定文件保存的路径 filename = "newsImg_" + str( int(datetime.now().timestamp() * 1000000)) + "." + newsimg.name.split('.')[-1] #需要判断指定的文件夹存不存在,不存在就创建 dir = "static/newsimg" utils.creatDir(dir) savePath = dir + "/" + filename #写入文件中 with open(savePath, 'wb') as f: for file in newsimg.chunks(): f.write(file) f.flush() #存入数据库 #标题颜色不存在的情况 if titlecolor == None: obj = news.objects.create(catid=newsmenu, title=title, thumb=filename, num=0, time=datetime.now()) else: obj = news.objects.create(catid=newsmenu, title=title, titlt_font_color=titlecolor, thumb=filename, num=0, time=datetime.now()) # 获取刚存进去的id newsid = obj.id # 把文章内容存入内容表中 obj2 = news_content.objects.create(newsid=newsid, content=content) return HttpResponse(returnResult.returnResult(0, "添加成功!"))