Django DRF开发入门:从环境搭建到序列化实战
创作时间:
作者:
@小白创作中心
Django DRF开发入门:从环境搭建到序列化实战
引用
CSDN
1.
https://blog.csdn.net/Lescar/article/details/139746591
本文是一篇关于Django REST Framework(DRF)的入门教程,详细介绍了DRF的基本概念、环境搭建步骤以及一个简单的序列化示例。通过本文,读者可以快速掌握DRF的基础使用方法,并能够搭建一个基本的RESTful API。
一、DRF介绍
DRF即Django REST Framework的缩写,是Django框架中实现Restful API的一个插件,使用他可以非常方便的实现接口数据的返回。简单来说:通过DRF创建API后,就可以通过HTTP请求来获取、创建、更新或者删除数据(CRUD)
使用DRF原因:
- 可以自动生成API文档,在前后端分离开发的时候进行沟通比较有用。
- 授权验证策略比较完整,包含OAuth1和OAuth2验证。
- 支持ORM模型和非ORM数据的序列化。
- 高度封装了视图,使得返回json数据更加的高效。
二、环境搭建
1、在编译器终端,创建项目虚拟环境drflearn并激活该环境:
python -m venv drflearn # 创建虚拟环境drflearn
.\drflearn\Scripts\activate # 激活虚拟环境,注意:当前为window端虚拟环境激活方式
2、通过命令安装DRF环境
pip install djangorestframework
3、使用命令创建Django项目drf_project,项目目录如下
django-admin startproject drf_project
4、在settings中挂载rest_framework
INSTALLED_APPS = [
"...",
"rest_framework",
]
三、简单体验DRF序列化
1、创建应用serializer_learn
cd .\drf_project\
python manage.py startapp serializer_learn
生成目录如下:
在settings中挂载该应用
INSTALLED_APPS = [
"...",
"rest_framework",
"serializer_learn",
]
2、在models.py中创建简单模型
from django.db import models
# Create your models here.
class Goods(models.Model):
name = models.CharField(max_length=200,verbose_name='商品名称')
picture = models.CharField(max_length=200,verbose_name='商品图片')
price = models.DecimalField(verbose_name='商品价格',max_digits=6,decimal_places=2)
class Meta:
db_table = 'goods'
verbose_name = '商品管理'
verbose_name_plural = '商品管理'
def __str__(self):
return self.name
在admin.py中注册该模型
from django.contrib import admin
from .models import Goods
# Register your models here.
admin.site.register(Goods)
执行数据库迁移
python manage.py makemigrations
python manage.py migrate
3、在应用目录下创建serializers.py文件
from rest_framework import serializers
from .models import Goods
class GoodsSerializer(serializers.ModelSerializer):
class Meta:
model = Goods
fields = "__all__"
修改views.py
from rest_framework import viewsets
from .models import Goods
from .serializers import GoodsSerializer
# 这个视图函数已经包含了增删改检索
class GoodsView(viewsets.ModelViewSet):
queryset = Goods.objects.all()
serializer_class = GoodsSerializer
在应用目录下,新建urls.py 配置路由
from rest_framework.routers import DefaultRouter
from .views import GoodsView
router = DefaultRouter()
router.register('good',GoodsView)
urlpatterns = [
]+router.urls
在根目录下配置上述路由
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path("admin/", admin.site.urls),
path("serializer",include('serializer_learn.urls'))
]
4、为Goods模型添加数据
执行命令生成超级用户
python manage.py createsuperuser
执行命令运行django程序
python manage.py runserver
访问http://127.0.0.1:8000/admin/ 登录超级用户
访问127.0.0.1:8000/serializergood/可查看序列化后的数据,会将模型序列化成JSON格式的对象,使用Postman可实现对数据的增删改查
热门推荐
高效搬运秘诀:大型设备如何轻松转移
《盒中之海》探索:中式语境下的克苏鲁神话与未知的恐惧
比起抽烟,戒烟才更有害身体健康?医生:不过是戒断反应罢了
跨越千年的激昂旋律——动画版《三国演义》主题曲的音乐之旅
脖子痒与甲状腺结节有关系吗
缶——《汉字的字元·工具与器皿》
加勒比海盗3:伊丽莎白与杰克的深情羁绊
揭秘红外热成像的幕后英雄——发射率
美国大件运输专业卡车是怎么样的?
短视频如何吸引流量?打造引人注目的内容与创意
JAMA子刊:低钠盐可将中风复发风险降低14%,中风相关死亡风险降低21%
体检中心误诊怎么办?责任认定与赔偿标准详解
坐月子吃什么?这9个禁忌产后不要做,饮食注意看这篇!
新车镀晶怎样进行还原处理?这种还原处理有哪些注意事项?
可乐、雪碧、芬达有糖汽水碳酸饮料对比测评
五行属土的吉利字(精选名字229个)
如何自学一门新技能?从入门到精通的自学步骤
广东再添高铁,梅龙高铁进入联调联试将开通
了解黄金趋势的方法有哪些?这些方法如何帮助投资者做出决策?
联排别墅与双拼别墅的特点及市场分析
心脏超声报告不会看?先熟记这 6 大指标!
怎样有效收集证据进行举报:法律实务操作指南
门面转让的关键步骤是什么?这些步骤如何影响交易的成功率?
卡坦岛攻略:实用技巧助你轻松获胜
清华大学2024年本科招生录取分数线及招生计划全解析
北京大学王志恒课题组揭示植物-土壤微生物互作的全球模式和驱动因素
草莓奶昔制作指南:从原料选购到成品摆盘
腮腺肿瘤一定会复发吗
怎么瘦大腿外侧突出的肉
人参黄精茶功效与作用