Exemplo n.º 1
0
def BlogHandle(request):
    if not IsLogin(get_token(request)):
        return JsonResponse(GlobalVar.RspFail,GlobalVar.UserNotLogin)
    #【1】如果方法是Post,则开启注册,这是和客户端交互的第二步
    if request.method == 'POST':  
        pBlog = JsonRequest(request.body)
        
        token = get_token(request)
        
        pidAtClass = pBlog.get('idAtClass','')
        pidAtStudent = pBlog.get('idAtStudent','')
        pContent = pBlog.get('Content','')
        pLink = pBlog.get('Link','')
        ulToken = ''
        filename = ''
        
        #当终端传过来的Link为空时,则表示没有附件上传
        if not '' == pLink:
            ulToken,filename = func_yun.GetQiniuUlToken(GlobalVar.FileBlog)
           
        
        try:    
            lBlog = Blog(
                Content = pContent,
                Link = filename)
            lBlog.save(token,pidAtClass,pidAtStudent) 
        except:
            temp = copy(GlobalVar.RspFail)
            temp['UserMsg'] = u'发表日志异常'
            return JsonResponse(temp) 
            
        temp = copy(GlobalVar.RspSuccess)
        #将上传凭证和服务器生成的文件名称返回给客户端
        temp['UlToken'] = ulToken
        temp['FileName'] = filename
        return JsonResponse(temp,u'发表成功') 
    
    elif request.method == 'GET':
        try:
            #获取日志查询关键字
            pContent = request.GET.get('Content','')
            #返回查询结果
            return JsonResponse(Blog.objects.filter(Content__contains=pContent))
        except:
            return JsonResponse(GlobalVar.RspFail,u"刷新日志失败")  
    #【2】除了POST和GET,其他方法不处理
    else:
        return JsonResponse(GlobalVar.RspInValidRequest,u'只能使用Post或者GET方法')
Exemplo n.º 2
0
def ClassHandle(request):
    #登录用户才能操作
    #获取Token
    token = get_token(request)
    if not IsLogin(token):
        return JsonResponse(GlobalVar.RspFail,GlobalVar.UserNotLogin)
    
    #获取登录用户
    lUser = GetUserFromToken(token)
    #【1】如果方法是Post,则开启新建
    if request.method == 'POST': 
        try: 
            pClass = JsonRequest(request.body)            
            pClassNumber = pClass.get('ClassNumber','')
            pClassName = pClass.get('ClassName','')
            pGenerateYear = pClass.get('GenerateYear','')
            pType = pClass.get('Type','')
            pidSchool = pClass.get('idSchool','')
            y,m,d = strptime(pGenerateYear,"%Y-%m-%d")[0:3]           
            curClass = Class(
                ClassNumber = pClassNumber,
                ClassName = pClassName,
                GenerateYear = datetime(y,m,d),
                Type = pType)
            
            #保存班级信息,并返回id
            result,detail,idClass = curClass.save(token,int(pidSchool))
            #数据保存失败
            if(not result):
                return JsonResponse(GlobalVar.RspFail,detail)    
            
            return JsonResponse(GlobalVar.RspSuccess,str(idClass)) 
        except:
            return JsonResponse(GlobalVar.RspFail,"发生了未知错误!")
  
    elif request.method == 'GET':       
        
        try:
            #过滤出自己所属的班级
            pTypePara = request.GET.get('TypePara','')
            if pTypePara == 'my':
                return JsonResponse(Class.objects.filter(fkClassUser2Class__idUser=lUser))
            else:
                pass
            
            #获取学校名字查询关键字
            pName = request.GET.get('Name','')
            
            #按照学校方式查询
            pSchool = request.GET.get('idSchool','')
            if pSchool != '':
                return JsonResponse(Class.objects.filter(idSchool=pSchool))
            #返回查询结果
            return JsonResponse(Class.objects.filter(Name__contains=pName))
        except:
            return JsonResponse(GlobalVar.RspFail,"查询班级信息出错")

    #【2】除了POST和GET,其他方法不处理
    else:
        return JsonResponse(GlobalVar.RspInValidRequest)
Exemplo n.º 3
0
def SchoolHandle(request):
    if not IsLogin(get_token(request)):
        return JsonResponse(GlobalVar.RspFail,GlobalVar.UserNotLogin)
    
    #【1】如果方法是Post,则添加学校
    if request.method == 'POST':
        #APP使用Json方式传送数据  
        if 'application/json' in request.META.get('CONTENT_TYPE',''):
            pSchool = JsonRequest(request.body)          
                                  
            
            #需要联合查询
            pName = pSchool.get('Name','')
                   
            try:
                lSchool = School.objects.get(Name=pName)
                #删除或者修改
                if pSchool.get('requestType','') is "delete" or\
                    pSchool.get('requestType','') is "update":
                    result,infor = lSchool.update(lSchool,get_token(request))
                    if result:  
                        return JsonResponse(GlobalVar.RspSuccess,'学校信息更新成功')    
                    else:  
                        return JsonResponse(GlobalVar.RspFail,'学校信息更新失败' + infor)     
                        
                #既不是删除学校,也不是更新学校,则是添加学校
                else:
                    return JsonResponse(GlobalVar.RspFail,'该学校的名字已经注册,请使用其他名字')
            except School.DoesNotExist:
                #添加学校 
                if pSchool.get('requestType','') is not "add":
                    return  JsonResponse(GlobalVar.RspFail,'学校已经不存在,不能进行除添加以外的其他操作')
                
                curSchool = School(
                    Name = pName,
                    Provence = pSchool.get('Provence',''),
                    City = pSchool.get('City',''),
                    Address=pSchool.get('Address',''),
                    Phone = pSchool.get('Phone',''),
                    Principal = GetUserFromId(pSchool.get('Principal',''))
                    )
                result,detail = curSchool.save(token = get_token(request))
                if not result:
                    return JsonResponse(GlobalVar.RspFail,'学校创建失败' + detail)
                   
                return JsonResponse(GlobalVar.RspSuccess,'学校创建成功') 
            
            #返回多个,理论上不应该存在,重复键值
            except School.MultipleObjectsReturned:    
                pass
            
            #form数据解析失败
            return JsonResponse(GlobalVar.RspFail,'保存失败')
        #预留网页接口
        else:
            return JsonResponse(GlobalVar.RspWebReserve)
    
    elif request.method == 'GET':
        try:
            #获取学校名字查询关键字
            #pSchool = simplejson.loads(request.body)
            #pName = pSchool.get('Name','')
            lProvence = request.GET.get('Provence','')
            lCity = request.GET.get('City','')
            lModifyTime = request.GET.get('ModifyTime','')
            if lModifyTime is '':
                lModifyTime = '1900-01-01 00:00:00'
            else:
                pass
            
            querySet = None
            #lUpdate = Str2DateTime(lModifyTime)
            if lProvence is not '':
                if lCity is not '':
                    querySet = School.objects.filter(Provence=lProvence).filter(City=lCity).filter(ModifyTime__gt=Str2DateTime(lModifyTime))
                else:
                    querySet = School.objects.filter(Provence=lProvence).filter(ModifyTime__gt=Str2DateTime(lModifyTime))
            else:
                if lCity is not '':
                    querySet = School.objects.filter(City=lCity).filter(ModifyTime__gt=Str2DateTime(lModifyTime))
                else:
                    querySet = School.objects.filter(ModifyTime__gt=Str2DateTime(lModifyTime))
            #返回查询结果
            #querySet = School.objects.filter(Name__contains=lName)
            return JsonResponse(querySet)
        except:
            return JsonResponse(GlobalVar.RspFail,Detail='查询异常')
    #【2】除了POST和GET,其他方法不处理
    else:
        return JsonResponse(GlobalVar.RspInValidRequest)