多语言展示
当前在线:693今日阅读:84今日分享:32

Django-REST framework使用介绍

Django-REST framework序列器使用简单说明,Django-REST framework是现在流行的前后端分离框架,依托于Django,使后端仅仅作为数据的返回,通常以json格式返回,不再关注前端模板的渲染,方便为不同平台提供一致的数据。
方法/步骤
1

登录CentOS7虚拟机,打开终端,进入python虚拟环境,创建django工程,在工程内创建应用workon djandotestdjango-admin startproject djrestcd djrestpython manage.py startapp book

2

使用pip安装djangorestframework包 pip install djangorestframework在工程的settings.py文件,注册book应用和rest_framework应用,特别注意djangorestframework这个包以应用形式存在的,依托于原来的django,及时不安装这个包,用原生的django设计REST风格的工程依然是可以的,只是代码量大。修改数据库连接为本机mysql的djtest。cd djrestvi settings.py修改部分settings.py文件如下:DATABASES = {    'default': {        'ENGINE': 'django.db.backends.mysql',        'HOST': '127.0.0.1',  # 数据库主机        'PORT': 3306,  # 数据库端口        'USER': 'root',  # 数据库用户名        'PASSWORD': 'your password',  # 数据库用户密码        'NAME': 'djtest'  # 数据库名字,第3步会新建的数据库    }}INSTALLED_APPS = [    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'rest_framework',    'book.apps.BookConfig',]

3

在本机mysql数据库创建djtest数据库mysql -uroot -p输入密码create database djtest default charset=utf8;show databases;在工程同名子文件的__init__.py文件添加两行代码,用来与数据库交互vi __init__.py__init__.py文件内容如下:from pymysql import install_as_MySQLdbinstall_as_MySQLdb()

4

在book应用内创建模型类cd ..vi book/models.pymodels.py文件如下:from django.db import models# Create your models here.class student(models.Model):    name = models.CharField(max_length=20)    def __str__(self):        return self.name

5

生成数据库迁移文件python manage.py makemigrations迁移数据库python manage.py migrate

6

在应用文件夹,创建serializer.py文件,给模型类添加序列器vi book/serializer.pyserializer.py文件如下:from .models import studentfrom rest_framework import serializersclass studentSerializer(serializers.ModelSerializer):    class Meta:        model = student        fields = '__all__'解释一下:继承自serializers.ModelSerializer父类,对应student模型,操作所有字段

7

编辑应用文件夹的views.py文件,创建类视图vi book/views.pyviews.py文件如下:from django.shortcuts import renderfrom rest_framework.viewsets import ModelViewSetfrom .serializers import studentSerializerfrom .models import student# Create your views here.class studentViewSet(ModelViewSet):    queryset = student.objects.all()    serializer_class = studentSerializer

8

在应用文件夹的urls.py文件,添加路由vi book/urls.pyurls.py文件如下:from django.conf.urls import urlfrom rest_framework.routers import DefaultRouterfrom . import viewsurlpatterns = []router = DefaultRouter()router.register(r'books',views.studentViewSet)urlpatterns += router.urls在工程的urls.py文件include应用urlsvi djtest/urls.pyurls.py文件如下:from django.conf.urls import url,includefrom django.contrib import adminurlpatterns = [    url(r'^admin/', admin.site.urls),    url(r'^', include('book.urls')),]

9

启动django工程python manage.py runserver

10

在本机输入网址http://127.0.0.1:8000/books/就可以看到效果啦

推荐信息