locals()) 前端: #p#分页标题#e# ! DOCTYPE html html lang ="en" head
标签:
一、多对多创建 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(解决:本身手动操纵第三张表)
二、AjaxAjax不是一门新的语言,其实就是基于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