返回ORM目录 Django ORM

内容目录:

一、MTV与MVC模式
二、多对多表三种创建方式
三、前后端传输数据
四、Ajax
​ 五、批量插入数据
六、自定义分页器

一、MTV与MVC模式

  1. MTV模型

    Django就是基于MTV模型的框架,其中:
    M:模型层 models.py T:templates V:视图层 views 
  2. MVC模型

    M:模型层 models
    V:视图层 views
    C:控制器 controller 
    本质:django的MTV也是MVC
    

二、多对多表三种创建方式

  1. 第一种:Django ORM自动帮创建

    class Book(models.Model):name = models.CharField(max_length=32) authors = models.ManyToManyField(to='Author') class Author(models.Model): name = models.CharField(max_length=32) # 多对多字段在任意一张表中都可以创建,一般建议在查询频率高的那张表中建 # 在Django中,上面的操作--指定Book与Author字段是多对多的关系,Django会自动创建二者关系的表 # 好处是不用操心第三行表的创建 # 不足的地方在于,无法在这张表中添加新的字段(只是本表的字段),只能是指定的这几个关联的字段 
  2. 第二种:纯手动创建第三张表

    class Book(models.Model):name = models.CharField(max_length=32) class Author(models.Model): name = models.CharField(max_length=32) class Book2Author(models.Model): book = models.ForeignKey(to='Book') author = models.ForeignKey(to='Author') info = models.CharField(max_length=32) # 手动新建第三张表,将该表中的几个字段关联到Book和Author表中 # 不足的地方在于不支持双下划线的反向查询方式 # 好处在于扩展性大,可以添加出来关联的字段,还可以添加这个表自己的字段 
  3. 第三种:半自动创建第三张表

    class Book(models.Model):name = models.CharField(max_length=32) # 第三种创建表的方式 authors = models.ManyToManyField( to='Author',through='Book2Author',through_fields=('book','author')) class Author(models.Model): name = models.CharField(max_length=32) # book = models.ManyToManyField( to='Book',through='Book2Author',through_fields=('author','book')) class Book2Author(models.Model): book = models.ForeignKey(to='Book') author = models.ForeignKey(to='Author') info = models.CharField(max_length=32) # 同样是要手动创建第三张表,像第二种方法那样,同样也需要操作第一种的方式,不过要添加参数 # 这样建起来虽然麻烦了点,但是扩展性强的同时,又可以通过点点点(基于对象/双下划线)来操作数据 # 使用第三种方式创建多对多关联关系时,就不能使用set、add、remove、clear方法来管理多对多的关系了,只能通过第三张表的model来管理多对多关系 

三、前后端传输数据

  1. urlencoded

    Request Headers里:Content-Type: application/x-www-form-urlencoded前端对应的数据格式name=tyft&password=23s3后端获取数据request.POSTps: django会将urlencoded编码的数据解析自动放到request.POST 
  2. multipart/form-data

    form表单传输文件的编码格式
    后端获取文件格式数据request.FILES后端获取普通键值对数据request.POST
    
  3. application/json

    ajax发送json格式数据,数据在request.body中需要注意的点编码与数据格式要一致 

四、Ajax

给个链接:https://www.cnblogs.com/xt12321/p/11025037.html

五、批量导入数据

l = []
for i in range(10000):l.append(models.Book2(name='第%s本书'%i)) models.Book2.objects.bulk_create(l) # 批量插入数据 

六、自定义分页器

后端:book_list = models.Book2.objects.all()# 数据总条数all_count = book_list.count() # 当前页 current_page = request.GET.get('page',1) # 示例一个分页器对象 page_obj = my_page.Pagination(current_page=current_page,all_count=all_count) # 对总数据进行切片 page_queryset = book_list[page_obj.start:page_obj.end] 前端: {{ page_obj.page_html|safe }} # 帮你渲染的是带有bootstrap样式的分页器 # 直接导包用就好

五、批量导入数据

l = []
for i in range(10000):l.append(models.Book2(name='第%s本书'%i)) models.Book2.objects.bulk_create(l) # 批量插入数据 

六、自定义分页器

后端:book_list = models.Book2.objects.all()# 数据总条数all_count = book_list.count() # 当前页 current_page = request.GET.get('page',1) # 示例一个分页器对象 page_obj = my_page.Pagination(current_page=current_page,all_count=all_count) # 对总数据进行切片 page_queryset = book_list[page_obj.start:page_obj.end] 前端: {{ page_obj.page_html|safe }} # 帮你渲染的是带有bootstrap样式的分页器 # 直接导包用就好
给个模板链接:https://www.cnblogs.com/xt12321/p/11025055.html

转载于:https://www.cnblogs.com/xt12321/p/11024417.html

Django 前后端数据传输、ajax、分页器相关推荐

  1. 视频教程-Python+Vue+Django前后端分离项目实战-Python

    Python+Vue+Django前后端分离项目实战 教学风格独特,以学员视角出发设计课程,难易适度,重点突出,架构清晰,将实战经验融合到教学中.讲授技术同时传递方法.得到广大学员的高度认可. 王进 ...

  2. Django CSRF(什么是CSRF?)\Django前后端分离csrf token获取方式

    文章目录 Django CSRF 什么是CSRF? Django CSRF Django CSRF 中间件 Django,Ajax提交csrf_token处理 Django 设置 cookie 中的 ...

  3. 视频教程-Angular+Django前后端分离实战项目开发教程-AngularJS

    Angular+Django前后端分离实战项目开发教程 胜蓝博创(韬略课堂)创始人,IT培训讲师,先后在蓝港在线,热酷,乐元素等大型游戏公司任职,参与过多款大型网游.手游的设计和开发,精通页游.手游前 ...

  4. Nginx+uwsgi+celery+supervisor部署Django前后端分离项目

    转载 Nginx+uwsgi+celery+supervisor部署Django前后端分离项目 ljmict 0人评论 3887人阅读 2018-08-08 01:29:45 本实验实现了负载均衡.反 ...

  5. 前后端交互——Ajax

    前后端交互Ajax Ajax jQuery中的ajax $.get() $.post() $.ajax() 案例:图书列表 Ajax Ajax 即"AsynchronousJavascrip ...

  6. Django前后端分离实现登录验证码功能

    Django前后端分离实现登录验证码功能 当下最流行最热门的开发方式当属前后端分离开发,分工也更加明确与专注,前端也是越来越难,几天不学习就跟不上节奏,一个月不学习可以好不夸张的说,你已经不适合这个行 ...

  7. django前后端结合_一图看懂Django和DRF

    一个总结 Django和DRF用了很久了,一直没有认真的总结一下,没什么总结比一张框图更暴力了.最近根据使用经验画了几张图,下面这两张图分别是Django的框图和Django REST Framwor ...

  8. django前后端结合_简单4步用FLASK/Django部署你的Pyecharts项目

    文章首发公众号:早起python 前言 为什么将pyecharts与web框架结合使用?因为如果只是单纯的使用pyecharts,我们展示的时候只能将我们的图表生成为静态文件,虽然也在也可以使用ifr ...

  9. vue+django前后端项目部署

    一.python3的安装 1.安装python前的库环境: yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel ...

最新文章

  1. linux修改jdk环境变量6,Linux CentOS 6.5 使用自带jdk修改环境变量(示例代码)
  2. c枚举类型enum例题_SystemVerilog数据类型
  3. sql长整型_SQL 性能优化梳理
  4. java---Listener Filter知识点学习
  5. 0.IDA的反汇编算法方式
  6. java程序报错后跳过继续执行_java笔记.基础篇.基本数据类型
  7. Fault Tolerance 要求、限制和许可
  8. python编程语言-为什么我不建议你将python作为入门编程语言
  9. 推荐一本学习Groovy的书籍Groovy程序设计!
  10. 全才出书,值得一读——Leo推荐《我也能做CTO之程序员职业规划》
  11. Ghost Win10 企业版LTSC 2020.05(32位+64位)
  12. H5拼团抽奖拆盲盒源码/价值几万的H5拼团抽奖拆盲盒模式源码
  13. Mybatis对Double类型的字符串进行范围查询
  14. 使用Python将PDF转换成图片
  15. windows10打开natapp.exe 报Error: oppen NUL: The system cannot find the file specified.
  16. 无线桥接dhcp服务器不启动,TP-Link路由器桥接提示“获取IP地址失败,请检查DHCP是否开启...
  17. 关于VS2010下编译NTL库方法及NTL库的应用
  18. 斗地主洗牌发牌——排序版
  19. 机器学习——概率图模型
  20. 超声平面波复合成像仿真(ultrasound plane_wave compound imaging simulation)

热门文章

  1. 幅度和幅值有区别吗_你知道避雷器与浪涌保护器的区别吗?
  2. 无法在此设备上查看受保护内容_细说丨你想要的Excel保护与加密都在这里
  3. 如何在NVIDIA(英伟达)官网下载老版本Toolkit-SDK---例如下载CUDA Toolkit 8.0
  4. Requests上传文件
  5. 转岗测试工作三年经验总结(前端开发转测试)
  6. 基于持续集成的轻量级接口自动化测试 【持续更新...】
  7. 360怎么看电脑配置_怎么样查看电脑配置?5种方法查看电脑硬件配置好坏图文详解...
  8. java语言程序设计期中考试_《java语言程序设计》期中试卷(答案).doc
  9. layui怎样将响应数据展示在页面_layui-table对返回的数据进行转变显示的实例
  10. coreseek mysql_coreseek (sphinx)+ Mysql + Thinkphp搭建中文搜索引擎详解