一.昨日回顾
1 ajax:异步的Javascript的xml,同时可以发出很多ajax的请求,局部刷新
2 本质就是使用JavaScript这门语言发送http请求,(异步),原生,jQuery的ajax方法,axios
3 如何使用(借助于jQuery)
$.ajax({
url:/books/?name=lqz,
method:'post/get',
data:{
name:'lqz',age:19},
success:function(data){
打印,弹窗,渲染页面(js dom操作,修改页面)}
})
4 上传文件
var formdata=new Formdata()
formdata.append('name','lqz')
formdata.append('myfile',$('#id_file')[0].files[0])
$.ajax({
url:/books/?name=lqz,
method:'post/get',
processData:false,
contentType:false,
data:formdata,
success:function (data){
打印,弹窗,渲染页面(js dom操作,修改页面)}
})
5 上传json格式
$.ajax({
url:/books/?name=lqz,
method:'post/get',
contentType:'application/json',
data:字符串(json格式),
success:function(data){
打印,弹窗,渲染页面(js dom操作,修改页面)}
})
6 后端返回数据
-HttpResponse:它没有指定,text/html
-JsonResponse:它指定了响应编码:application/json
-ajax方法:会去看响应编码是什么,如果是application/json,自动调用JSON.parse(),如果不是json格式,就不处理
-于是:success:function(data)可能是个字符串,也可能是个对象,响应编码决定的
7 js中json序列化和反序列化
-JSON.parser()
-JSON.stringify(data)
8 django内置的序列化器
-需要会自己转(把对象转成json格式)
-自己写(局限性,以后再转publish,还得再写一遍,不通用)
ll = []
for book in book_list:
ll.append({
'name':book.name,'age':book.age})
return JsonResponse(ll,safe=False)
{
name:lqz,age:18,hobbys:[{
hobbyname:'篮球',hobbyid:1},{
hobbyname:'足球',hobbyid:2}]}
[{
name:lqz,age:18},{
name:egon,age:18},{
name:zs,age:18}]
二.今日内容
0.批量插入
'''views.py'''
from app01 import models
'''models.py'''
from django.db import models
class Book(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=32)
price = models.DecimalField(max_digits=5, decimal_places=2)
1.分页器组件介绍
1 项目数据量大了以后,比如涉及到分页,一页一页的加载显示
2 django中分页器组件,把分页常用的东西,封装到一个类中
3 实例化得到一个对象,对象里有属性和方法
2.分页器的简单使用
book_list=models.Book.objects.all()
paginator=Paginator(book_list,10)
print(paginator.per_page)
print(paginator.count)
print(paginator.num_pages)
print(paginator.page_range)
page=paginator.page(2)
print(page.has_next())