Python的Django REST框架中的序列化及请求和返回
序列化Serialization
1. 设置一个新的环境
在我们开始之前,
我们首先使用virtualenv要创建一个新的虚拟环境,以使我们的配置和我们的其他项目配置彻底分开。
现在我们处在一个虚拟的环境中,开始安装我们的依赖包
$pip install django
$pip install djangorestframework
$pip install pygments
需要退出虚拟环境时,运行deactivate。更多信息,irtualenv document
2. 开始
环境准备好只好,我们开始创建我们的项目
$ cd ~
$ django-admin.py startproject tutorial
$ cd tutorial
项目创建好后,我们再创建一个简单的app
$python manage.py startapp snippets
我们使用sqlite3来运行我们的项目tutorial,编辑tutorial/settings.py,
将数据库的默认引擎engine改为sqlite3, 数据库的名字NAME改为tmp.db
DATABASES = {
}
同时更改settings.py文件中的INSTALLD_APPS,添加我们的APP
snippets和rest_framework
INSTALLED_APPS = (
)
在tutorial/urls.py中,将snippets
app的url包含进来
urlpatterns = patterns('',
)
3. 创建Model
这里我们创建一个简单的nippets
model,目的是用来存储代码片段。
from django.db import models
from pygments.lexers import get_all_lexers
from pygments.styles import get_all_styles
LEXERS = [item for item in get_all_lexers() if item[1]]
LANGUAGE_CHOICES = sorted([(item[1][0], item[0]) for item in
LEXERS])
STYLE_CHOICES = sorted((item, item) for item in
get_all_styles())
class Snippet(models.Model):
完成model时,记得sync下数据库
python manage.py syncdb
4. 创建序列化类
我们要使用我们的web api,要做的第一件事就是序列化和反序列化, 以便snippets实例能转换为可表述的内容,例如json.
我们声明一个可有效工作的串行器serializer。在snippets目录下面,该串行器与django
的表单形式很类似。创建一个serializers.py
,并将下面内容拷贝到文件中。
from django.forms import widgets
from rest_framework import serializers
from snippets.models import Snippet
class SnippetSerializer(serializers.Serializer):