环境安装与配置

DRF需要以下依赖:

Python (2.7, 3.2, 3.3, 3.4, 3.5, 3.6)

Django (1.10, 1.11, 2.0)

DRF是以Django扩展应用的方式提供的,所以我们可以直接利用已有的Django环境而无需重新创建。(若没有Django环境,需要先创建环境安装Django)

6.1 安装DRF

前提是已经安装了django,建议安装在虚拟环境

# mkvirtualenv drfdemo -p python3

# pip install django

pip install djangorestframework

pip install pymysql

6.1.1 创建django项目

cd ~/Desktop

django-admin startproject drfdemo

使用pycharm打开项目,设置虚拟环境的解析器,并修改manage.py中的后缀参数。

6.2 添加rest_framework应用

INSTALLED_APPS = [

...

'rest_framework',

]

接下来就可以使用DRF提供的功能进行api接口开发了。在项目中如果使用rest_framework框架实现API接口,主要有以下三个步骤:

将请求的数据(如JSON格式)转换为模型类对象

操作数据库

将模型类对象转换为响应的数据(如JSON格式)

6.3 体验drf的过程

创建模型,models.py

class Student(models.Model):

# 模型字段

name = models.CharField(max_length=100,verbose_name="姓名")

sex = models.BooleanField(default=1,verbose_name="性别")

age = models.IntegerField(verbose_name="年龄")

class_null = models.CharField(max_length=5,verbose_name="班级编号")

description = models.TextField(max_length=1000,verbose_name="个性签名")

class Meta:

db_table="tb_student"

verbose_name = "学生"

verbose_name_plural = verbose_name

数据库设置及准备:

create database students charset=utf8;

import pymysql

pymysql.install_as_MySQLdb()

DATABASES = {

# 'default': {

# 'ENGINE': 'django.db.backends.sqlite3',

# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

# },

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': "students",

"HOST": "127.0.0.1",

"PORT": 3306,

"USER": "root",

"PASSWORD":"123",

},

}

python manage.py makemigrations

python manage.py migrate

错误列表

# 执行数据迁移 python manage.py makemigrations 报错如下:

解决方案:

注释掉 backends/mysql/base.py中的35和36行代码。

# 执行数据迁移发生以下错误:

解决方法:

backends/mysql/operations.py146行里面新增一个行代码:

创建序列化器 serializers.py

在应用目录中新建serializers.py用于保存该应用的序列化器。

创建一个StudentModelSerializer用于序列化与反序列化。

# 创建序列化器类,回头会在试图中被调用

class StudentModelSerializer(serializers.ModelSerializer):

class Meta:

model = Student

fields = "__all__"

model 指明该序列化器处理的数据字段从模型类Student参考生成

fields 指明该序列化器包含模型类中的哪些字段,'all'指明包含所有字段

视图 views.py

在students应用的views.py中创建视图StudentViewSet,这是一个视图集合。

from rest_framework.viewsets import ModelViewSet

from .models import Student

from .serializers import StudentModelSerializer

# Create your views here.

class StudentViewSet(ModelViewSet):

queryset = Student.objects.all()

serializer_class = StudentModelSerializer

queryset 指明该视图集在查询数据时使用的查询集

serializer_class 指明该视图在进行序列化或反序列化时使用的序列化器

路由 urls.py

在students应用的urls.py中定义路由信息。

from . import views

from rest_framework.routers import DefaultRouter

# 路由列表

urlpatterns = []

router = DefaultRouter() # 可以处理视图的路由器

router.register('students', views.StudentViewSet) # 向路由器中注册视图集

urlpatterns += router.urls # 将路由器中的所以路由信息追到到django的路由列表中

最后把students子应用中的路由文件加载到总路由文件中.

from django.contrib import admin

from django.urls import path,include

urlpatterns = [

path('admin/', admin.site.urls),

path("stu/",include("students.urls")),

]

运行测试

drf 安装_drf 安装与配置相关推荐

  1. drf 安装_drf安装与基本使用

    今日内容 1 web开发模式 #前后端混合开发(前后端不分离):返回的是html的内容,需要写模板 #前后端分离:只专注于写后端接口,返回json,xml格式数据 # xml格式 lqz # json ...

  2. 【CV】Python下载安装及环境变量配置教程

    目录 Python下载 Python安装 Python环境变量配置 Python下载 可通过https://www.python.org/downloads/下载 1.进入网页后点击Windows,其 ...

  3. oracle数据库配置失败,oracle11g – Oracle 11G XE安装错误:数据库配置失败

    在 linuxMint上安装后运行oracle配置时: /etc/init.d/oracle-xe configure 指定以下错误: sudo /etc/init.d/oracle-xe confi ...

  4. mysql属性配置提高查询_MYSQL性能优化-安装时优化参数配置提高服务性能

    MYSQL性能优化一直是个头痛的问题,目前大多都是直接把页面html静态页面或直接使用了缓存技术,下面我就mysql本身的性能优化来分享一下. 安装时优化参数配置提高服务性能 在Linux下安装Mys ...

  5. 如何配置mac的mysql环境_mac安装mysql数据库及配置环境变量

    安装mysql 下载mysql.我下载的是:mysql-8.0.11-macos10.13-x86_64.dmg 双击打开mysql-8.0.11-macos10.13-x86_64.dmg,然后双击 ...

  6. 安装JDK1.8+环境配置

    安装JDK1.8+环境配置 1.下载JDK 2.安装JDK 3.环境配置 3.1 新建系统变量 3.2 添加Path路径 3.3 使用cmd命令行验证是否环境配置成功 1.下载JDK 直接官网下载:h ...

  7. win10安装程序无法将配置为在此计算机,Win10安装会遇到的问题汇总及解决方法...

    Win10发布已经有一段时间了,尽管Win10安装会遇到各种各样的问题,使用Win10的用户还是很多.那么,Win10安装会遇到的问题有什么呢?又该怎么解决呢?根据安装方式的不同,出现的问题也不同,接 ...

  8. Linux平台 Oracle 18c RAC安装Part2:GI配置

    三.GI(Grid Infrastructure)安装 3.1 解压GI的安装包 3.2 安装配置Xmanager软件 3.3 共享存储LUN的赋权 3.4 使用Xmanager图形化界面配置GI 3 ...

  9. MySQLMySql免安装版安装配置

    MySql免安装版安装配置,附MySQL服务无法启动解决方案 mysql 5.6.17 绿色版(免安装)安装配置教程 1 [mysql] 2 # 设置mysql客户端默认字符集 3 default-c ...

最新文章

  1. RN中布局样式的写法
  2. 比较常用的几个正则表达式
  3. posix自定义消息队列_消息队列开源框架,基于Io,节约服务器资源
  4. Python3 split()分割和 join()合并
  5. 【计算机类】大学生计算机专业常用工具汇总
  6. 怎么用计算机打分数,电脑excel中分数怎么打出来(图解excel分数输入法)
  7. android 访问服务器sql_XSS 攻击、CSRF 攻击、SQL 注入、流量劫持(DNS 劫持、HTTP 劫持)—— 浏览器安全
  8. python远程登录并执行命令_Python - 远程SSH执行命令
  9. mongorepository查询条件_Java操作MongoDB采用MongoRepository仓库进行条件查询 | 学步园...
  10. sofia-sip下载地址
  11. 【图像分割】基于粒子群算法实现图像聚类分割附matlab代码
  12. “天鹅”类谜解大全!(转载)
  13. 佛祖,你为什么不帮我
  14. 在pb中实现声音文件的播放
  15. STM32学习【2】STM32F103C8T6串口2USART2程序
  16. BZOJ 4239 巴士走读
  17. python爬虫爬取京东_python爬取京东价格
  18. 函数式编程-Stream流
  19. 移动端 UI设计尺寸(一)篇
  20. 老鼠繁殖问题(老鼠有死亡)

热门文章

  1. android 控制流混淆 反向,AST混淆实战:仿obfuscator混淆控制流平坦化
  2. OpenShift 4 - 提升客户端访问 API Server 安全
  3. OpenShift 4 - DevSecOps Workshop (9) - 向Dev环境部署应用镜像
  4. 使用Fluent NHibernate和AngularJS的Master Chef(第2部分)ASP.NET Core MVC
  5. 使用Newtonsoft.Json接受部分资源
  6. 从SQL Server生成文档
  7. c# rar解压大小_Linux压缩解压指令-bzip2、xz、compress、rar
  8. 计算机网络管理2018版,2018~2019学年度第二学期“计算机网络管理”专业技能竞赛火热进行中...
  9. react改变checkbox的文字类型_React Checkbox不发送onChange
  10. java 批量替换字符串_# Java 一步一步实现高逼格的字符串替换工具(二)