コード例 #1
0
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)
コード例 #2
0
ファイル: views.py プロジェクト: ciker/pythoner.net
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)
コード例 #3
0
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)
コード例 #4
0
ファイル: views.py プロジェクト: ciker/pythoner.net
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)
コード例 #5
0
ファイル: views.py プロジェクト: kingsky23/pythoner.net
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)
コード例 #6
0
ファイル: views.py プロジェクト: ehomeshasha/easydata
 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()