当前位置:首页 > Web开发 > 正文

locals()) 前端: #p#分页标题#e# ! DOCTYPE html html lang ="en" head

2024-03-31 Web开发

标签:

一、多对多创建 1.全自动

class Book(models.Model): title = models.CharField(max_length=32) authors = models.ManyToManyField(to=Author) # orm就会自动帮你创建第三张表 class Author(models.Model): name = models.CharField(max_length=32)

2.纯手写

class Book(models.Model): title = 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) create_time = models.DateField(auto_now_add=True)

3.半自动

class Book(models.Model): title = 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) books = models.ManyToManyField(to=Author,through=Book2Author,through_fields=(author,book)) class Book2Author(models.Model): book = models.ForeignKey(to=Book) author = models.ForeignKey(to=Author) create_time = models.DateField(auto_now_add=True)

三种方法的特点

全自动:

  - 好处:第三张表自动创建,orm盘问便利

  - 不敷:无法扩展特别的字段

纯手写:

  - 好处:可以扩展特别的字段

  - 不敷:orm盘问时候会带来未便,,没有正反向盘问

半自动:

  - 好处:既可以扩展特别字段,又便利orm盘问

  - 不敷:无法操作add、set、remove、clear(解决:本身手动操纵第三张表)

二、Ajax

Ajax不是一门新的语言,其实就是基于js写的一个成果模块而已

特点:异步提交、局部刷新

1.与后端交互方法

- 浏览器窗口输入url回车       GET

- a标签href属性填写url点击     GET

- form表单             GET/POST

- Ajax               GET/POST

2.ajax根基语法布局

$.ajax({ // 1.到底朝哪个后端提交数据 url:‘‘, // 控制数据的提交路径 有三种写法 跟form表单的action属性一致 // 2.指定当前请求方法 type:post, // 3.提交的数据 data:{i1:$(#i1).val(),i2:$(#i2).val()}, // 4.ajax是异步提交 所以需要给一个回调函数来措置惩罚惩罚返回的功效 success:function (data) { // data就是异步提交的返回功效 // 将异步回调的功效通过DOM操纵衬着到第三个input框中 $(#i3).val(data) } })

3.content-Type前后端传输数据的编码格局

urlencoded、formdata、application/json,前后端数据交互,编码格局与数据格局必然要一致

form表单

- urlencoded数据格局

默认是urlencoded编码格局传输数据,urlencoded数据格局:XXX=OOO&YYY=ZZZ,django后端针对该格局的数据,会自动解析并帮你打包到request.POST中

- formdata数据格局

django后端针对切合urlencoded编码格局数据(普通键值对)还是统一解析到request.POST中,而针对formdata文件数据就会自动解析放到request.FILES中

ajax提交

- urlencoded数据格局

ajax默认的也是urlencoded编码格局

application/json

django后端针对json格局数据并不会做任何的措置惩罚惩罚,而是直接放在request.body中

$(‘#d2‘).on(‘click‘,function () { $.ajax({ url:‘‘, type:‘post‘, // 改削content-Type参数 contentType:‘application/json‘,
      // json格局序列化 data:JSON.stringify({
‘username‘:‘jason‘,‘password‘:123}), // 将数据序列化成json格局字符串 success:function (data) { alert(data) } }) })

ajax发送文件

使用内置东西FormData

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31872.html