文件上传(文件上传绕过)

网友投稿 660 2022-09-10

文件上传(文件上传绕过)

基于教务系统写的

1.form表单select选择框数据左右移动

(1)数据查询:

models.teacher.objects.filter(name="root") #查找name=root的数据

 models.teacher.objects.exclude(name="root")#查找name!=root的数据

 models.teacher.objects.filter(id__in=[1,2,3])#查找id在[1,2,3]的数据

 models.teacher.objects.exclude(id__in=[1,2,3])#查找id不在[1,2,3]的数据

(2)jQuery对象和DOM对象相互转换:

var obj=document.getElementById('sel') //DOM对象

 $('obj') //DOM对象转换成JQuery对象

 $('#sel') //JQuery对象

 $('#sel')[0] //JQuery对象转换成DOM对象

(3)获取select中的信息:

select标签的Dom对象中有 selectedOptions (找到数据) ​ appendTo (移走数据,移到想要移动的地方)

(4)实际操作代码:

     

         

         

            老师姓名:

         

         

        已管理班级:

         

            {% for foo in obj_list %}

                 

            {% endfor %}

         

        未管理班级:

         

            {% for foo in cls_list %}

                 

            {% endfor %}

         

         

         

             +

             -

         

         

     

//js代码部分

     

#后端代码块

     if request.method == "GET":

         #已选择的教师的id

         obj = models.teacher.objects.get(id=nid)

         #获取当前老师已经管理的所有班级

         obj_list=obj.cls.all().values_list("classid","classname")#元组

         print(obj_list)

         #已经管理的班级的ID列表

         id_list = list(zip(*obj_list))[0] if obj_list else [] #三元运算

         #获取不包括已经管理的班级

         cls_list=models.classes.objects.exclude(classid__in=id_list)

         return render(request,"edit_teacher.html",{"obj":obj,"cls_list":cls_list,"obj_list":obj_list})

2.From表单上传文件

注:使用form表单上传文件时必须要在form标签中添加encty属性:enctype="multipart/form-data"

 {% extends "index.html" %}

 {% block right %}

     

        上传者:

         

         

     

     

         

        {% for foo in img_list %}

             

                 

filter:{{ foo.filter }}

                 

             

        {% endfor %}

     

 {% endblock %}

//数据库代码块

 class teacher(models.Model):

    teachername=models.CharField(max_length=64)

    cls = models.ManyToManyField('Classes')

#文件上传(Form表单)

 def upload(request):

     if request.method == "GET":

         img_list = models.imagesurl.objects.all()

         return render(request,"upload.html",{"img_list":img_list})

     elif request.method == "POST":

         username = request.POST.get("username",None)

         #filesname = request.POST.get("files")

         file = request.FILES.get("files")

         import os

         path = os.path.join('statics', 'upload', file.name)

         f = open(path,'wb')

         for chunk in file.chunks():

             f.write(chunk)

         f.close()

         models.imagesurl.objects.create(filter=username,path=path)

         return redirect("/upload/")

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【Android,Kotlin】自定义弹框的简单写法Demo
下一篇:windows不回应ping的原因
相关文章

 发表评论

暂时没有评论,来抢沙发吧~