Example #1
0
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, "添加成功"))
Example #2
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()
Example #3
0
 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()
Example #4
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()
Example #5
0
 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()
Example #6
0
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, "更改成功"))
Example #7
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, "修改成功!"))
Example #8
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, "添加成功!"))