栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Django创建api的demo(使用RESTFramework)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django创建api的demo(使用RESTFramework)

目录

1.新建项目和app

2.创建模型操作类

3.在settings.py中配置mysql数据库

4.数据库迁移

 5.创建序列化器

6.在stundents>views.py中编写如下代码:

7.新建子路由students>urls.py:

8.编辑总路由urls.py:

 9.查看api:


1.新建项目和app

django-admin startproject drfdemo

django-admin startapp students

在settings.py中添加标注区域代码

2.创建模型操作类

在students/models.py中添加如下代码:

from django.db import models

# Create your models here.
class Student(models.Model):
    """学生信息"""
    name = models.CharField(max_length=255,verbose_name="姓名")
    sex = models.BooleanField(default=1, verbose_name="性别")
    age = models.IntegerField(verbose_name="年龄", help_text="年龄不能小于0")
    classroom = 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

3.在settings.py中配置mysql数据库
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '数据库名',
        'HOST':'ip地址',
        'POST':3306,
        'USER':'用户名',
        'PASSWORD':'密码',
    }
}

在主应用__init__.py中添加如下代码:

from pymysql import install_as_MySQLdb
 
 
install_as_MySQLdb()

4.数据库迁移

在navcat中查看是否创建成功:

 5.创建序列化器

在students中新建serializers.py

 serializers.py:

from rest_framework import serializers
from stuapi.models import Student


# 创建一个序列化器用于序列化和反序列化
class StudentModelSerializer(serializers.ModelSerializer):
    class Meta:
        model = Student  # model指明该序列化器处理的数据字段从模型类参考生成
        # fields = "__all__"  # field指明该序列化器包含模型类中的哪些字段,“all”指明所有字段
        fields = ["id","name","sex","age","classroom","description"]  # 指定包含哪些字段

6.在stundents>views.py中编写如下代码:
from rest_framework.viewsets import ModelViewSet
from stuapi.models import Student
from .serializers import StudentModelSerializer

# Create your views here.

class StudentModelViewSet(ModelViewSet):
    queryset = Student.objects.all()
    serializer_class = StudentModelSerializer

7.新建子路由students>urls.py:

urls.py: 

from rest_framework.routers import DefaultRouter
from . import views

router = DefaultRouter()
router.register("stu", views.StudentModelViewSet, basename="stu"),


urlpatterns = [

] + router.urls

8.编辑总路由urls.py:

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include("students.urls")),
]

 9.查看api:

访问http://127.0.0.1:8000/api/:

 访问http://127.0.0.1:8000/api/stu/:

 访问http://127.0.0.1:8000/api/stu/2/:

对比Django 创建api的demo (不使用RESTFramework)发现使用RESTFramework更具有优势。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/828983.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号