利用ajax删除书籍,以及书籍分页,上传文件。
一:利用ajax的删除书籍:
url: 加/与不加/的区别: 前面加/
ajax的 url 匹配的 python urls的path(‘2/’) jango中会将自动让客户端重新发送一个带/ 重定向get的请求
利用ajax删除图书:
1.在views里面删除数据
2.在jq里面进行dom操作,删除点击中的标签(remove)。
选中标签:
$(’.buton’).attr(‘pk’) —选中按钮标签,获取url 其中属性的序列
二:ContentType: 获取上传文件数据的封装格式:
request.POST
request.GET
request.body
发送接送数据给服务器:
发送者,使用ajax:
$.ajax({
url:’’,
type:’’,
contentType:“json”,
data:JSON.stringify({
num1:num1
}),
})
三,文件上传
第一种:
form表单提交:
enctype=“multipart/form-data”
服务端,jdango:data=json.loads(request.body.decode('utf8')) #request.POST/GET只能解开urlencode类型
第二种:ajax提交
$('.input')[0].files[0] ---------》不能直接放入data里面,格式不对
获取input标签,获取dom对象,获取对象属性的files内容取第一个。 jq知识-操作
使用formData:转化成ajax能传输的格式(键值对):
必须加
contentType:false,
processData:false,
(自己写html时候,忘记改input type='submit’了,报错。)----------细心
os操作:os.path.join(1,2)------>
request.meta()#获取HTML——ajax的 headers。
headers:{“X-CSRFTOKEN”}=$.cookie(‘csrftoken’)
四,分页https://www.cnblogs.com/yuanchenqi/articles/9036515.html
python的内置函数:关于分页器
book_list=Book.objects.all() #取出数据库里的全部书籍
paginator=Paginator(book_list,8) #分每页8组
current_page=request.GET.get(“page”,1) #获取上传要求的第几页默认为1
page_obj=paginator.page(current_page) #取出要求页数的数据
html使用bootstrap分页:
html使用
page_obj.has_previous(判断是否有上一页) page_obj.has_next判断是否有下一页
page_obj.previous_page_number(上一页的数字)
paginator.page_range(****_range,遍历)
批量插入:
bulk_create(book_list)
分页书籍
通过点击a标签,发送get请求,views函数通过request.获取?后面的书籍page=页数,返回当前页数的数据
html for循环展示当前的数据,前一页,后一页需要对其进行判定,
ps:
- jq,bootstarp的执行顺序:如果不加入载入函数,则将要吧
})
$(".ajax_file_obj")[0].files[0]
$(".ajax_file_obj")[0]:转化为js的对象。
$(".ajax_file_obj")[0].files:js的files方法,获取上传的全部文件。
$(".ajax_file_obj")[0].files[0]:获取上传文件的第一个内容既文件。
var formdata=new Formdata
formdata.append(“file_obj”?(‘btn’)[0])