登录CentOS7虚拟机,打开终端,进入python虚拟环境,创建django工程,在工程内创建应用workon djandotestdjango-admin startproject djrestcd djrestpython manage.py startapp book
使用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',]
在本机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()
在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
生成数据库迁移文件python manage.py makemigrations迁移数据库python manage.py migrate
在应用文件夹,创建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模型,操作所有字段
编辑应用文件夹的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
在应用文件夹的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')),]
启动django工程python manage.py runserver
在本机输入网址http://127.0.0.1:8000/books/就可以看到效果啦