自我总结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}} #告诉这是安全的可以读取
posted @ 2019-12-03 20:26  jzm1201  阅读(72)  评论(0编辑  收藏  举报