自我总结49
Ajax结合sweetalert实现按钮功能
删除按钮的提示功能
创建static文件,放入第三方静态文件sweetalert、jQuery,并在settings中手动设置静态路径
models中创建字段,并执行数据库迁移命令
然后写home.html页面 ,导入静态文件sweetalert、jQuery
书写删除按钮jQuery封装的js事件
view.py业务逻辑
启动服务
bulk_create批量插入数据
普通方式批量插入多条数据
for i in range(1000):
models.book.objects.create(title = f'第{i}本书')
运行速度极慢
bulk_create批量插入多条数据
book_list = []
for i in range(1000):
book.list.append(models.book(title=f'第{i}本书')
models.book.objects.bulk_create(book_list)
运行速度很快
注意:当你要批量操作数据库的时候 一定要减少走数据库的频率自定义分页器
数据的分页展示
django其实有内置的分页模块但是该模块不好用,书写麻烦,功能不健全
自定义分页
思路
1.queryset支持切片操作
2.研究当前页 每页展示多少条数据 起始位置 终止位置
3.前端代码不一定非要在前端书写 后端也可以
具体操作
把自定义的代码拷贝到本地>>>将代码放入到一个py文件中>>>导入该文件中的类
后端使用
# 生成该类的对象
book_queryset = models.book.objects.all() # 想要分页展示的数据
current_page = request.GET.get('page',1) # 获取当前页
all_count=book_queryset.count() # 查看一共有多少条数据
page_queryset = book_quyerset[page_obj.start:page_obj.end]
return render(request.'index.html',local())
前端使用
{% for book in page_queryset %} 将页面上原本的queryset全部换成切片之后的queryset即可
<p>{{book}}</p>
{% endfor %}
{{page_obj.page_html|safe}} #告诉这是安全的可以读取