1.DRF 环境安装与配置

文章目录

  • [一. Django Rest_Framework](#一. Django Rest_Framework)
  • 二、环境安装与配置
    • [2.1 安装 DRF](#2.1 安装 DRF)
    • [2.2 创建Django项目](#2.2 创建Django项目)
    • [2.3 添加 rest_framework 应用](#2.3 添加 rest_framework 应用)
  • 三、启动项目

一. Django Rest_Framework

核心思想:大量缩减编写 api 接口的代码

Django REST framework 是一个建立在 Django 基础之上的 Web 应用开发框架,可以快速的开发 REST API 接口应用。在 REST framework 中,提供了序列化器 Serializer 的定义,可以帮助我们简化序列化与发序列化的过程,不仅如此,还提供了丰富的类视图、扩展类、视图集来简化视图编写工作。REST framework 还提供了认证、权限、限流、过滤、分页、接口文档等功能支持。RSET framework 提供了一个 Web 可视化界面来方便查看测试接口。

中文文档:https://q1mi.github.io/Django-REST-framework-documentation/#django-rest-framework

github: https://github.com/encode/django-rest-framework/tree/master

特点

  • 提供了定义序列化器 Serializer 的方法,可以快速根据 Django ORM 或者其他库自动序列化/反序列化
  • 提供了丰厚的类视图、Mixin 扩展类,简化视图的编写
  • 丰富的定制层:函数视图、类视图、视图集合到自动生成 API,满足各种需要
  • 多种身份认证和权限认证方式的支持
  • 内置了限流系统
  • 直观的 API web 界面
  • 可扩展性,插件丰富

二、环境安装与配置

DRF 需要以下依赖:

  • Python(3.5以上)
  • Django(2.2以上)

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

2.1 安装 DRF

python 复制代码
pip install Django==3.2.4
pip install djangorestframework==3.12.4
pip install PyMySQL==1.1.1

注意

  • Django 版本和 DRF 版本之间有依赖

2.2 创建Django项目

python 复制代码
django-admin startproject drfdemo

2.3 添加 rest_framework 应用

settings.pyINSTALLED_APPS中添加'rest_framework'。

python 复制代码
INSTALLED_APPS = [
    ...
    'rest_framework',
]

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

  • 将请求数据(如 JSON 格式)转化为模型类对象
  • 操作数据库
  • 将模型类对象转换为响应的数据(如 JSON格式)

配置数据库连接并初始化 pymysql

settings.py代码

python 复制代码
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': "students",
        "HOST": "127.0.0.1",
        "PORT": "3306",
        "USER": "root",
        "PASSWORD": "123456",
    }
}

drfdemo.__init__.py 文件下添加代码

python 复制代码
# 适配连接数据库报错
import pymysql
pymysql.install_as_MySQLdb()

三、启动项目

python 复制代码
python manager.py runserver
相关推荐
深蓝电商API4 分钟前
异步爬虫中代理池的并发管理
开发语言·爬虫·python
B站计算机毕业设计超人6 分钟前
计算机毕业设计PySpark+Hive+Django小红书评论情感分析 小红书笔记可视化 小红书舆情分析预测系统 大数据毕业设计(源码+LW+PPT+讲解)
大数据·人工智能·hive·爬虫·python·spark·课程设计
黄筱筱筱筱筱筱筱10 分钟前
7.适合新手小白学习Python的异常处理(Exception)
java·前端·数据库·python
Rolei_zl13 分钟前
AIGC(生成式AI)试用 45 -- DocsGPT 与 Python开发 1
python·aigc
开源技术1 小时前
深入了解Turso,这个“用Rust重写的SQLite”
人工智能·python
u0109272713 小时前
RESTful API设计最佳实践(Python版)
jvm·数据库·python
我材不敲代码6 小时前
Python实现打包贪吃蛇游戏
开发语言·python·游戏
0思必得09 小时前
[Web自动化] Selenium处理动态网页
前端·爬虫·python·selenium·自动化
韩立学长9 小时前
【开题答辩实录分享】以《基于Python的大学超市仓储信息管理系统的设计与实现》为例进行选题答辩实录分享
开发语言·python
qq_192779879 小时前
高级爬虫技巧:处理JavaScript渲染(Selenium)
jvm·数据库·python