• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python django中如何使用restful框架

python 搞代码 4年前 (2022-01-07) 15次浏览 已收录 0个评论
文章目录[隐藏]

今天给大家带来的是关于Python框架的相关知识,文章围绕着django中restful框架的使用展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下

restful框架的使用

在使用django进行前后台分离开发时通常会搭配django-rest-framework框架创建RESTful风格的接口API。框架介绍及版本要求可参考官方地址:https://www.django-rest-framework.org

本文以创建man包含namesex字段的API为实例学习django-rest-framework框架的使用。

主要包含下面5个步骤:

1.创建Django项目

2.创建ORM模型

3.加载Django REST Framework

4.序列化模型

5.创建加载数据的view和url

1.创建Django项目

创建django_rest

 django-admin startproject django_rest

进入django_rest,创建虚拟环境env

 virtualenv env

激活虚拟环境,并安装django

 source ./env/bin/activate

安装 django

 pip install django

创建rest_app

 python manage.py startapp rest_app

注册app,将app添加到I来源gao*daima.com搞@代#码网NSTALLED_APPS

 #setting.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_app' ] 

创建后台admin账户用于管理

 $ python manage.py createsuperuser Username (leave blank to use 'root'):admin Email address: Password: Password (again): Superuser created successfully.

2.创建ORM模型

数据库我们使用默认sqlite3 即可,如需要变更可在setting.py中databases配置。

修改我们/django_rest/models.py添加我们man的模型

 #models.py from django.db import models # Create your models here. class Man(models.Model): name = models.CharField(max_length=64) sex = models.CharField(max_length=64) def __str__(self): return self.name

做数据库迁移

 python manage.py makemigrations python manage.py migrate 

将Man这个model注册到我们的后台,以便可以通过django的后台做增删查改,编写admin.py如下

 #admin.py from django.contrib import admin from .models import Man # Register your models here. admin.site.register(Man)  # 注册Man到后台

启动django服务

 python manage.py runserver

访问 http://127.0.0.1:8000/admin/可以看到登录界面,输入密码登录

可以看到我们的rest_app下的模型man对象mans

我们添加一个那个男人lgd.ame

3. 加载Django REST Framework

安装工具包

 pip install djangorestframework

注册rest_framework

 #setting.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_app' 'rest_framework' #注册 ]

4.序列化模型

序列化器会把我们的模型数据转化(序列化)为json格式,这样就能够被请求了。同样当有josn数据提交过来的时候,序列化器会将json数据转换为模型供咋们使用。

我们在rest_app下创建文件serializer.py

我们要做三件事:

1.导入Man模型

2.导入序REST Framework序列化器

3.创建新的类将模型和序列化器链接起来

 from rest_framework import serializers from .models import Man class Manserializer(serializers.HyperlinkedModelSerializer): class Meta: model = Man fields = ('name','sex')

5.创建加载数据的view和url

我们需要把序列化后的数据返回给浏览器,所以要做一下步骤:

1.通过不通的Man查询数据库

2.将查询后的数据传递给序列化器,通过序列化器转化为json

我们在rest_app/views.py编写我们的视图,ModelViewSet由rest_framework提供,包含了get、post方法

 # views.py from rest_framework import viewsets from .serializers import ManSerializer from .models import Man class ManViewSet(viewsets.ModelViewSet): queryset = Man.objects.all().order_by('name')  #查询结果给queryset serializer_class = ManSerializer     #对结果进序列化

在django_rest目录下urls.py添加api路由

 from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('rest_app.urls')), ]

在rest_app目录下创建urls.py添加视图路由,通过rest_framework中router确保我们的请求到正确的动态资源。

 from django.urls import include, path from rest_framework import routers from . import views router = routers.DefaultRouter() router.register(r'man', views.ManViewSet)   #路由到ManViewSet视图 # Wire up our API using automatic URL routing. # Additionally, we include login URLs for the browsable API. urlpatterns = [ path('', include(router.urls)), #使用router路由 path('api-auth/', include('rest_framework.urls', namespace='rest_framework')) ]

最后我们来启动服务,访问http://127.0.0.1:8000/ 可以在浏览器查看到我们api信息

 python manage.py runserver

访问http://127.0.0.1:8000/man/ 来查看man资源

通过id来访问api资源http://127.0.0.1:8000/man/1/

这样我们一个基础restful风格的API创建完成了。感觉关键点还是理解ModelViewSet和内置router不读源码很难知其所以然。

到此这篇关于Python django中如何使用restful框架的文章就介绍到这了,更多相关restful框架的使用内容请搜索gaodaima搞代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持gaodaima搞代码网

以上就是Python django中如何使用restful框架的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python django中如何使用restful框架

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址