def add_by_paste(request, code_base_id): current_page = 'code' page_title = u'代码分享' try: base = Base.objects.get(id=code_base_id, author=request.user) except Base.DoesNotExist: raise Http404() # 如果已经发布过,则是修改代码 if base.display == True: page_title = '修改代码' button = '修改代码完毕,马上保存' else: page_title = '代码分享第2步:粘贴/上传代码' button = '添加代码完毕,马上发布' # 判断是否是作者本人进入该页面 if request.user <> base.author: raise Http404() # 处理GET请求 if request.method == 'GET': form = PasteForm() file_form = FileForm() codes = Code.objects.filter(base=base) zips = Zip.objects.filter(base=base) return render('code_add_by.html', locals(), context_instance=RequestContext(request)) # 处理POST请求 else: languag_id = request.POST.get('language', 1) content = request.POST.get('content', '') # 处理分类 try: language = Language.objects.get(id=languag_id) except Category.DoesNotExist: messages.error(request, "你选择的语言不存在") return HttpResponseRedirect('/code/add/%d/' % base.id) # 检查代码长度 if 0 < len(content) <= 20: messages.error(request, "代码长度不够20字符") return HttpResponseRedirect('/code/add/%d/' % base.id) try: new_code = Code(base=base, language=language, content=content, name='代码片段') new_code.save() except Exception, e: messages.error(request, "保存数据时出现错误") return HttpResponseRedirect('/code/add/%d/' % base.id)
def add_by_paste(request,code_base_id): current_page = 'code' page_title = u'代码分享' try: base = Base.objects.get(id=code_base_id,author=request.user) except Base.DoesNotExist: raise Http404() # 如果已经发布过,则是修改代码 if base.display == True: page_title = '修改代码' button = '修改代码完毕,马上保存' else: page_title = '代码分享第2步:粘贴/上传代码' button = '添加代码完毕,马上发布' # 判断是否是作者本人进入该页面 if request.user <> base.author: raise Http404() # 处理GET请求 if request.method == 'GET': form = PasteForm() file_form = FileForm() codes = Code.objects.filter(base=base) zips = Zip.objects.filter(base=base) return render('code_add_by.html',locals(),context_instance=RequestContext(request)) # 处理POST请求 else: languag_id = request.POST.get('language',1) content = request.POST.get('content','') # 处理分类 try: language = Language.objects.get(id=languag_id) except Category.DoesNotExist: messages.error(request,"你选择的语言不存在") return HttpResponseRedirect('/code/add/%d/' %base.id) # 检查代码长度 if 0 < len(content) <= 20: messages.error(request,"代码长度不够20字符") return HttpResponseRedirect('/code/add/%d/' %base.id) try: new_code = Code(base=base,language=language,content=content,name='代码片段') new_code.save() except Exception,e: messages.error(request,"保存数据时出现错误") return HttpResponseRedirect('/code/add/%d/' %base.id)
def add_by_file(request, base_id): try: base = Base.objects.get(id=base_id, author=request.user) except Base.DoesNotExist: raise Http404() if request.method == 'GET': return HttpResponseRedirect('/code/add/%d/' % base.id) elif 'file_upload' in request.FILES: file = request.FILES['file_upload'] else: messages.warning(request, '请选择文件') return HttpResponseRedirect('/code/add/%d/' % base.id) #检查文件大小 file_size = 0 for chunk in file.chunks(): file_size += len(chunk) if file_size >= 1024 * 1024 * 5: messages.error(request, '文件大小超过限制') return HttpResponseRedirect('/code/add/%d/' % base.id) # 处理.py 文件 lans = Language.objects.filter(~Q(suffix='')) code_file_list = [lan.suffix for lan in lans] zip_file_list = ['tar', 'zip', 'rar', 'gz'] file_suffix = file.name.split('.')[-1] if file_suffix in code_file_list: try: language = Language.objects.get(suffix=file.name.split('.')[-1]) except Language.DoesNotExist: messages.error(request, '不支持你上传的文件') return HttpResponseRedirect('/code/add/%d/' % base.id) file.open() content = file.read() if len(content) < 20: messages.error(request, "代码长度少于20字符") return HttpResponseRedirect('/code/add/%d/' % base.id) code = Code(base=base, content=content, language=language, name=file.name) try: code.save() except Exception, e: messages.error(request, '保存代码时,服务器出现错误:' + str(e.message)) else: messages.success(request, '上传python文件成功!') return HttpResponseRedirect('/code/add/%d/' % base.id)
def add_by_file(request,base_id): try: base = Base.objects.get(id=base_id,author=request.user) except Base.DoesNotExist: raise Http404() if request.method == 'GET': return HttpResponseRedirect('/code/add/%d/' %base.id) elif 'file_upload' in request.FILES: file = request.FILES['file_upload'] else: messages.warning(request,'请选择文件') return HttpResponseRedirect('/code/add/%d/' %base.id) #检查文件大小 file_size = 0 for chunk in file.chunks(): file_size += len(chunk) if file_size >= 1024*1024*5: messages.error(request,'文件大小超过限制') return HttpResponseRedirect('/code/add/%d/' %base.id) # 处理.py 文件 lans = Language.objects.filter(~Q(suffix='')) code_file_list = [ lan.suffix for lan in lans] zip_file_list = ['tar','zip','rar','gz'] file_suffix = file.name.split('.')[-1] if file_suffix in code_file_list: try: language = Language.objects.get(suffix=file.name.split('.')[-1]) except Language.DoesNotExist: messages.error(request,'不支持你上传的文件') return HttpResponseRedirect('/code/add/%d/' %base.id) file.open() content = file.read() if len(content) < 20: messages.error(request,"代码长度少于20字符") return HttpResponseRedirect('/code/add/%d/' %base.id) code = Code(base=base,content=content,language=language,name=file.name) try: code.save() except Exception,e: messages.error(request,'保存代码时,服务器出现错误:'+str(e.message)) else: messages.success(request,'上传python文件成功!') return HttpResponseRedirect('/code/add/%d/' %base.id)
def add_by_file(request, base_id): try: base = Base.objects.get(id=base_id, author=request.user) except Base.DoesNotExist: raise Http404() if request.method == "GET": return HttpResponseRedirect("/code/add/%d/" % base.id) elif "file_upload" in request.FILES: file = request.FILES["file_upload"] else: messages.warning(request, "请选择文件") return HttpResponseRedirect("/code/add/%d/" % base.id) # 检查文件大小 file_size = 0 for chunk in file.chunks(): file_size += len(chunk) if file_size >= 1024 * 1024 * 5: messages.error(request, "文件大小超过限制") return HttpResponseRedirect("/code/add/%d/" % base.id) # 处理.py 文件 lans = Language.objects.filter(~Q(suffix="")) code_file_list = [lan.suffix for lan in lans] zip_file_list = ["tar", "zip", "rar", "gz"] file_suffix = file.name.split(".")[-1] if file_suffix in code_file_list: try: language = Language.objects.get(suffix=file.name.split(".")[-1]) except Language.DoesNotExist: messages.error(request, "不支持你上传的文件") return HttpResponseRedirect("/code/add/%d/" % base.id) file.open() content = file.read() if len(content) < 20: messages.error(request, "代码长度少于20字符") return HttpResponseRedirect("/code/add/%d/" % base.id) code = Code(base=base, content=content, language=language, name=file.name) try: code.save() except Exception, e: messages.error(request, "保存代码时,服务器出现错误:" + str(e.message)) else: messages.success(request, "上传python文件成功!") return HttpResponseRedirect("/code/add/%d/" % base.id)
def code_save(self, form, commit=True, **kwargs): code = Code() code.code = form.cleaned_data.get("code") code.title = form.cleaned_data.get("title") code.cate_id = kwargs['cate_id'] code.description = form.cleaned_data.get("description") code.uid = self.User.id code.username = self.User.username code.brush = form.cleaned_data.get("brush") code.gutter = form.cleaned_data.get("gutter") code.first_line = form.cleaned_data.get("first_line") code.collapse = form.cleaned_data.get("collapse") code.highlight = form.cleaned_data.get("highlight") code.url_clickable = form.cleaned_data.get("url_clickable") code.max_height = form.cleaned_data.get("max_height") code.date_create = now() code.date_update = now() if commit: code.save()