通用drf视图

本文概述了如何使用Django REST framework(DRF)高效地创建API视图,包括序列化器的使用、类视图的优势、认证权限和开发工具集成。通过实例演示了配置项目、模型及数据库设置,以及API调试界面的应用。
摘要由CSDN通过智能技术生成

复习DRF视图

  1. Django REST framework是一个建立在Django基础之上的Web 应用开发框架,可以快速的开发REST API接口应用。

  2. 它提供了序列化器Serialzier & ModelSerializer 的定义,可以帮助我们简化序列化与反序列化的过程,

  3. 提供丰富的类视图、扩展类、视图集来简化视图的编写工作。

  4. 还提供了认证、权限、频率、过滤、分页、接口文档等功能。

  5. REST framework提供了一个API 的Web可视化界面, 方便查看、测试接口。

特点

  • 提供了定义序列化器的方法,可以快速将 模型类对象转为字典,便于序列化;

  • 提供了丰富的类视图、Mixin扩展类,简化视图的编写;

  • 丰富的定制层级:函数视图、类视图、视图集合到自动生成 API,满足各种需要;

  • 多种身份认证和权限认证方式的支持;[jwt]

  • 内置了限流系统;

  • 直观的 API web 界面;【方便我们调试开发api接口】

  • 可扩展性,插件丰富

创建django项目

创建项目  django-admin startproject 项目名

配置drf & 中间件 & mysql 数据库

配置代码
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',# drf框架
    'corsheaders',# 注册跨域
    'users'# 用户APP
]
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'corsheaders.middleware.CorsMiddleware',# 添加跨域中间件
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
# mysql数据库
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'p6_421',
        'USER': 'root',
        'PASSWORD': 'lh020630',
        'HOST': 'localhost',
        'PORT': 3306,
    }
}

 配置静态文件static

在项目根目录创建目录"static"

STATIC_URL = '/static/'
STATICFILES_DIRS= (os.path.join(BASE_DIR,'static'),)#静态文件配置

创建django应用users

进入到项目创建应用  django-admin startapp 应用名

定义users模型类

# 模型类代码
from django.db import models


# Create your models here.
# 基类
class BaseModel(models.Model):
    created_time = models.DateTimeField("创建时间", auto_now_add=True)
    updated_time = models.DateTimeField("更新时间", auto_now=True)
    is_delete = models.BooleanField(default=False)

# 部门模型类
class Department(BaseModel):
    name = models.CharField("部门",max_length=50)

    class Meta:
        db_table = 'department'

    def __str__(self):
        return self.name

# 职责模型类
class Duty(BaseModel):
    name = models.CharField("工作职责",max_length=50)

    def __str__(self):
        return self.name

    class Meta:
        db_table = 'duty'


# 员工模型类
class Staff(models.Model):  # 不能也继承BaseModel,会冲突
    SEX_CHOICE = (
        (1, '男'),
        (0, '女')
    )
    name = models.CharField("姓名", max_length=30)
    sex = models.SmallIntegerField("性别", default=1, choices=SEX_CHOICE)  # choices选项
    phone = models.CharField("手机号", max_length=11)
    email = models.CharField("邮箱", max_length=50)
    Department = models.ForeignKey(Department, on_delete=models.CASCADE)
    Duty = models.ForeignKey(Duty, on_delete=models.CASCADE)

    def __str__(self):
        return self.name

    class Meta:
        db_table = 'staff'

生成迁移文件、执行迁移文件

python manage.py makemigrations

python manage.py migrate

启动django项目  python manage.py runserver

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值