一个小项目带你了解rest framework
来源:互联网 发布:java 知识库系统 开源 编辑:程序博客网 时间:2024/06/02 02:01
这边声明一下,以下是参考官方文档来的。
新建项目
新建名为dimples的django项目
在其中建立一个名为astart的APP:
新建目录
# 新建目录mkdir dimplescd dimples
新建虚拟环境
virtualenv envenv\Scripts\activate
在虚拟环境中安装依赖
pip install djangopip install djangorestframework
新建项目
django-admin.py startproject dimples . cd dimplesdjango-admin.py startapp astartcd ..
创建表
python manage.py migrate
创建管理员
python manage.py createsuperuser
序列化
serializers只做一件事,json化model对象
首先创建一个文件dimples/astart/serializers.py来编写序列化相关的代码:
from django.contrib.auth.models import User, Groupfrom rest_framework import serializers
class UserSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = User fields = ('url', 'username', 'email', 'groups')class GroupSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Group fields = ('url', 'name')
HyperlinkedModelSerializer: 建立超链接关系。
dimples/astart/views.py
编写视图文件
from django.contrib.auth.models import User, Groupfrom rest_framework import viewsetsfrom dimples.astart.serializers import UserSerializer, GroupSerializerclass UserViewSet(viewsets.ModelViewSet): """ 查看、编辑用户的界面 """ queryset = User.objects.all().order_by('-date_joined') serializer_class = UserSerializerclass GroupViewSet(viewsets.ModelViewSet): """ 查看、编辑组的界面 """ queryset = Group.objects.all() serializer_class = GroupSerializer
ViewSets:封装许多常见的操作,减少重复代码。 保持代码的简洁以及逻辑的清晰。
dimples/urls.py:
from django.conf.urls import url, includefrom rest_framework import routersfrom dimples.astart import viewsrouter = routers.DefaultRouter()router.register(r'users', views.UserViewSet)router.register(r'groups', views.GroupViewSet)# 使用URL路由来管理我们的API# 另外添加登录相关的URLurlpatterns = [ url(r'^', include(router.urls)), url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))]
使用了ViewSets可以通过使用Router类来自动生成URL配置信息。
Settings
启用分页功能 以及 只有管理员能访问
INSTALLED_APPS = ( ... 'rest_framework',)REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAdminUser',), 'PAGE_SIZE': 10}
测试
Terminal中输入
python ./manage.py runserver
使用命令行工具访问API
http -a dimples:111111 http://127.0.0.1:8000/users/
(venv) C:\Users\Administrator\PycharmProjects\dimples>http -a dimples:111111 http://127.0.0.1:8000/user/HTTP/1.0 200 OKAllow: GET, HEAD, OPTIONSContent-Length: 91Content-Type: application/jsonDate: Wed, 20 Sep 2017 11:31:17 GMTServer: WSGIServer/0.1 Python/2.7.13Vary: Accept, CookieX-Frame-Options: SAMEORIGIN{ "groups": "http://127.0.0.1:8000/user/groups/", "users": "http://127.0.0.1:8000/user/users/"}
确保登录状态下打开浏览器 127.0.0.1:8000/users/
阅读全文
0 0
- 一个小项目带你了解rest framework
- 用Django Rest Framework和AngularJS开始你的项目
- 一个程序带你了解java初始化
- 带你了解ShotCode
- 带你了解FLEX
- 带你了解BOM
- 带你了解Fresco
- 带你了解树莓派
- 带你了解树莓派
- 带你了解----->BFC
- 带你了解树莓派
- 一个简单的例子带你了解jni流程
- Flyerinternational带你了解外汇!
- 小司机带你撸一个简单的RPC框架
- 你真的了解Spring Framework吗?
- 了解REST
- Scala语言基础教程 一个程序带你了解整个Scala的基础语法和使用
- 一个基于TensorFlow的简单故事生成案例:带你了解LSTM
- Node.js——module模块
- 初识AOP
- 汇编语言一些寄存器的作用
- 欢迎使用CSDN-markdown编辑器
- 购物车内样式(bootstrop样式)
- 一个小项目带你了解rest framework
- R-次要刻度线 参考线 图例
- vue.js
- iOS app开发第三方库
- Random ThreadLocalRandom 产生随机数
- 线程创建与使用
- 编辑器之 sublime 常用快捷键
- 网站该不该加WWW
- ajax规范化格式