Django REST framework快速起步
安装Django REST framework
创建一个Django项目,名为
tutorial,并且启动一个新的app名字叫quickstart
# Create the project directory
mkdir tutorial
cd tutorial
# Create a virtualenv to isolate our package dependencies locally
virtualenv env
source env/bin/activate # On Windows use `env\Scripts\activate`
# Install Django and Django REST framework into the virtualenv
pip install django
pip install djangorestframework
# Set up a new project with a single application
django-admin.py startproject tutorial . # Note the trailing '.' character
cd tutorial
django-admin.py startapp quickstart
cd ..上述命令已经完成了django目录初始化
首次同步数据库
在CentOS 5.11环境下,由于使用的是sqlite 3.3.6,则会出现以下报错
如果使用sqlite 3.8.11则不会出现该问题
Django 1.9使用sqlite3 v3.3.6时候会出现PRAGMA foreign_keys返回nothing,而不是0或者1。解决方法是修改 django/db/backends/sqlite3/schema.py
将
修改成
创建一个名为
admin用户,使用密码MyPass
序列化
这里定义一些序列化:创建一个新的模块名为tutorial/quickstart/serializers.py用于数据表现:
注意这里使用超链接HyperlinkedModelSerializer。可以使用主键和一些其他关系,不过超链接是一个良好的RESTful设计。
注意:这里如果没有使用
from django.db import models,则会出现报错
视图
现在定义一些视图,编辑tutorial/quickstart/views.py添加如下
和编写多个视图不同,这里将所有共有特性统一存放到ViewSets的类中。
URLs
编写API URLs,则在 tutorial/urls.py
由于使用viewsets取代views,可以通过简单在一个router类注册viewsets,这样从API自动生成URLs conf。
如果需要更多API URLs,可以简单通过使用常规基于类的视图,并明确编写URL conf。
最后,包含默认的登陆和登出视图用于浏览API,中国是可选的,但是如果API要求授权并且希望使用可浏览的API,则非常有用。
设置
设置一些全局设置,开启页码,并且希望API只被admin用户访问,在设置 tutorial/settings.py
以上完成所有测试代码编写
测试API
运行程序
访问APU
参考
Last updated
Was this helpful?