ajax发送json格式与文件数据、django自带的序列化器(了解)
上期内容回顾
- 聚合查询和分组查询
# 聚合查询
max min sum avg count# 查询关键字:aggregate
from django.db.models import Max, Min, Sum, Avg, Count
res = Book.objects.aggregate(max_price=Max('price'), )# 分组查询
group by
"""
默认情况下,分组之后依然可以查询到所有的字段数据,如果设置为了严格模式,只能获取到分组的那个字段show variables like '%mode%' sql_mode='only_full_group_by';
1. group_concat
2. concat
3. concat_ws"""# 查询关键字:annotate
res = Book.objects.annotate()# 代表的是按照models后面的表进行分组res = Book.objects.values('title', 'price').annotate()# 执行某一个字段分组
- 事务
1. 面试相关
2. 事务的四大特性:ACID
3. 事务的隔离级别
4. 事务的作用:就是保证数据的安全
5. 三个关键字:
start transaction;
commit;
rollback;
- choices参数
# 对于一些字段可以完全列举完的可能性使用
class User:
gender_choices = (
(1, '男'),
(2, '女'),
(3, '其他'),
)gender = models.IntergerField(choices=gender_choices)# 获取值
res.gender
res.get_字段名_display()
- 多对多的创建方式
1. 全自动
2. 半自动
3. 纯手动
- Ajax技术
# 特性:
异步提交
局部刷新# 我们学习直接使用jquery封装之后的ajax 必须引入jquery
# 在js代码里书写以下代码
$.ajax({
url:''# 提交地址
type:'post' # 请求方式
data: {'d1':d1},
dataType:'json'
success:function(res) {
console.log(res)
}
})# 后端返回的数据格式分两种:
1. json字符串
前端处理:
1.1 反序列化: JSON.parse(res)
1.2 在加一个参数:dataType:'json' 2. json对象
# 前端不需要做任何处理
今日内容概要
- ajax发送json格式的数据
- ajax发送文件数据
- ajax集合layer弹窗实现删除的二次确认(了解见视频)
- django自带的序列化组件(了解)
# ajax默认提交的数据格式是 urlencoded
发送的数据类型和数据格式要保持一致# 在views.py文件中:
from django.shortcuts import render
# Create your views here.def index(request):
# print(request.POST)
# print(request.GET)
# print(request.FILES)
if request.is_ajax():
print(request.body)# b'{"d1":"aaa"}' bytes类型
json_bytes = request.body
json_str = json_bytes.decode('utf8')# 解码
print(json_str, type(json_str))# {"d1":"aaa"}
import json
json = json.loads(json_str)
print(json, type(json))# {'d1': 'aaa'} return render(request, 'index.html')# 在urls.py添加路由:
url(r'^index/', views.index),# 新建index.html文件:
Title - 锐客网
文章图片
2. ajax发送文件数据
# 在views.py文件中添加功能:
def upload_file(request):
if request.method == 'POST':
print(request.POST)
print(request.FILES)
return render(request, 'upload.html')# 在urls.py添加路由:
url(r'^upload_file/', views.upload_file),# 新建upload.html文件:
Title - 锐客网
文章图片
文章图片
3. django自带的序列化器(了解)
# 在views.py中:
from app01 import modelsfrom django.core import serializers
def user_list(request):
user_list = models.User.objects.all()# 返回 queryset类型res = serializers.serialize('json', user_list)
return HttpResponse(res)
【ajax发送json格式与文件数据、django自带的序列化器(了解)】
文章图片
推荐阅读
- 如何用Python实现自动发送微博
- YYC蜻蜓系统系列|点发送短信无反应是很多用户在搭建优雅草蜻蜓q系统中常见问题-解决点击发送短信无反应
- Python字符串str和json格式相互转换
- ajax|掌握 Ajax,第 4 部分: 利用 DOM 进行 Web 响应
- 掌握AJAX|掌握 Ajax,第 4 部分: 利用 DOM 进行 Web 响应 将 HTML 转换为对象模型
- 单片机|vb6.0开发的上位机串口助手(自动识别电脑端口号、支持文本、十六进制发送)
- 前端|npm ERR code ENOENT npm ERR syscall open npm ERR path CUserspackage.jsonnpm ERR code ENOENT n
- Python|被女友吐槽不细心不关心她(教你用Python感知女友的情绪变化(连节日祝福都帮你自动发送))
- Java实现微信公众号发送模版消息
- Json(Java对象和Json文本转换工具类)