1 Django REST Framework 开发 ---- 原生 Django View 热身

在正式开始 Django REST Framework 学习之前,先用 django.core.serializers 和原生的 Django View 类来实现一次数据的序列化数据。

下面的例子展示了,是如何解决序列化 JSON 数据的,前提:给Products的Model已经创建完

创建 Django 项目,并修改 urls.py 文件:

1 from django.views.generic import TemplateView
2 from product.views import ProductsListView
3 
4 
5 urlpatterns = [
6     url(r'^admin/', admin.site.urls),
7     url(r'^products/', ProductsListView.as_view(), name="product-list"),
8 ]

创建 view.py 文件并写入如下内容:

 1 import json
 2 
 3 from django.http import JsonResponse
 4 from django.core import serializers
 5 from django.views.generic.base import View
 6 
 7 from products.models import Product
 8 
 9 
10 class ProductListView(View):
11     def get(self, request):
12         products = Product.objects.all()
13         json_data = serializers.serialize('json', products)  # 将django model 得到的对象序列化成 json 类型
14         json_data = json.loads(json_data)
15 
16         return JsonResponse(json_data, safe=False)  # safe = False 因为json_data是 non-dict 类型,不然会报错

注:在打开网页显示数据时需下载chrome jsonview插件


这样一个基本的django 使用json数据类型调取数据的过程就完成了,但是会有以下问题:

  1. 图片,日期格式支持不够(仅会显示图片相对路径)
  2. 主键JSON字段之外,使得调用起来会不方便
  3. 文档需要手动写,缺乏规范性且效率低下
  4. 输入验证缺失 (类似于表单的认证)
  5. 等等

猜你喜欢

转载自www.cnblogs.com/crazy-chinese/p/9828099.html