Django REST framework
admin
2023-07-06 06:44:12
0


第1章 简介

Django rest framework 是一套基于django框架编写restful风格API的组件

第2章 简单了解下都有哪些特点

2.1serializers(序列化)

就是将复杂的数据结构json化,支持ORM和非ORM数据源的序列化

2.2authentication(身份认证)

快速实现支持auth2auth3的方式的权限验证

2.3request and response(请求与响应)

扩展了常规的HttpResquestTemplateResponse

2.4viewset and routers(视图和路由)

第3章 开始一个简单的项目

3.1创建好Django项目后,修改settings文件

INSTALLED_APPS= [
    
…….
    
'rest_framework',
    
'app',
]


DATABASES = {
    
'default': {
        
'ENGINE''django.db.backends.mysql',
        
'NAME''restful',
        
'USER''root',
        
'PASSWORD''123465',
        
'HOST''local.dev',
        
'PORT''3306',
    
}
}

 

3.2配置urls文件

from django.conf .urls import urlinclude


urlpatterns = [
    path(
'admin/'admin.site.urls),
    
path(r'^test/'include('app.urls')),
]

3.3编写model层:

from django.dbimport models

# Create your models here.
class Restful(models.Model):
    name= models.CharField(
max_length=30)
    passwd = models.CharField(
max_length=10)

    
def__str__(self):
        
returnself.name

3.4初始化数据库

python manage.py makemigrations

python manage.py migrate

3.5编写序列化模块:

from rest_frameworkimport serializers
from .models import Restful

class RestfulSerializer(serializers.ModelSerializer):
    
classMeta:
        model = Restful
        fields = (
"id""name""passwd")

3.6编写视图views.py

from django.shortcutsimport render

# Create your views here.
from rest_framework import statusgenerics
from rest_framework.response import Response
from rest_framework.views import APIView
from .models import Restful
from .serializer import RestfulSerializer


class RestfulView(APIView):
    
defget(selfrequestformat=None):
        data = Restful.objects.all()
        serializer = RestfulSerializer(data
many=True)
        
returnResponse(serializer.data)

    
defpost(selfrequestformat=None):
        serializer = RestfulSerializer(
data=request.data)
        
ifserializer.is_valid():
            serializer.save()
            
returnResponse(serializer.datastatus=status.HTTP_201_CREATED)
        
else:
            
returnResponse(serializer.datastatus=status.HTTP_400_BAD_REQUEST)

3.7编写app路由urls.py

from django.conf.urlsimport url
from import views

urlpatterns = [
    url(
r'^api/$'views.RestfulView.as_view()name='restful'),
]

3.8进行测试:

插入数据:

  ~ curl -X POST http://localhost:8000/test/api/ -d "name=jiangby&passwd=123456"

{"id":1,"name":"jiangby","passwd":"123456"}%                                                                                                                                    

  ~ curl -X POST http://localhost:8000/test/api/ -d "name=test&passwd=123456"

{"id":2,"name":"test","passwd":"123456"}%

查看数据:

Django REST framework

相关内容

热门资讯

我国科学家为细胞信号“导航”开... 新华社济南5月31日电(记者张力元)人体细胞犹如一座精密的通信城市,每天都有大量“指令”穿梭传递,调...
极端大风突袭哈尔滨!过山车停摆... 极目新闻记者 詹钘5月31日,受强对流天气影响,哈尔滨国际会展中心体育场相关设施受到损坏,原计划当晚...
三原电缆取得电缆接头连接用防护... 国家知识产权局信息显示,上海三原电缆附件有限公司取得一项名为“一种电缆接头连接用防护结构”的专利,授...
原创 识... 还是那句话,机圈苦大屏久已…… 虽然大屏有大屏的美,但是小屏也有小屏的俏。在大屏旗舰占据主流的手机市...
玄戒技术取得分频电路专利,实现... 国家知识产权局信息显示,北京玄戒技术有限公司取得一项名为“分频电路、分频器、射频芯片和电子设备”的专...
为什么今年香会基调明显变了 5月29日—31日在新加坡举行的第23届香格里拉对话会(简称“香会”),见证着元首引领下大国关系继续...
成本几毛钱、假驱蚊液香精兑水,... 入夏升温,蚊虫进入活跃期,驱蚊防护成为民生刚需,《财经调查》持续接到消费者投诉,他们买到的多款网红驱...
越来越多80后90后,正在丧失... 六一儿童节到来之际,朋友圈里开始出现一种熟悉的热闹。有人晒出零食礼包,有人半开玩笑地向伴侣讨礼物,还...
洋保电子取得用于低温环境的电气... 国家知识产权局信息显示,洋保电子(太仓)有限公司取得一项名为“一种用于低温环境的电气柜”的专利,授权...
中日韩飞手争霸宁波!2026无... 潮新闻客户端 记者 陈冲 通讯员 朱凝 5月31日,2026小遛·无人机竞速世界杯(中国·宁波鄞州站...