Django开发RESTful API实现增删改查(入门级)
数据库中有user表如下:
新建一个Django项目:
django-admin.py startproject myDjango<project_name>
目录介绍
myDjango/ ├── manage.py # 管理文件 └── myDjango # 项目目录 ├── __ init __.py ├── settings.py # 配置文件 ├── urls.py # 路由 --> URL和函数的对应关系 └── wsgi.py # runserver命令就使用wsgiref模块做简单的web server
使用rest_framework
在setting.py中添加:
INSTALLED_APPS = [ ... 'rest_framework' ]
连接MySQL数据库
在setting.py中设置:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'bigdatatest', 'USER': 'root', 'HOST': '127.0.0.1', 'PASSWORD': '1009', 'PORT': 3306, 'OPTIONS': {'charset': 'utf8mb4'}, } }
在__init__.py中添加:
import pymysql pymysql.version_info = (1, 4, 13, "final", 0) pymysql.install_as_MySQLdb()
新建app
python manage.py startapp users<app_name>
目录介绍:
users/ ├── migrations # 用于在之后定义引用迁移功能 ├── __ init __.py ├── __ init __.py ├── admin.py # 管理站点模型的声明文件,默认为空 ├── apps.py # 应用信息定义文件。在其中生成了类Appconfig,类用于定义应用名等Meta数据 ├── models.py # 添加模型层数据类的文件 ├── tests.py # 测试代码文件 └── views.py # 定义URL响应函数
在setting.py中添加:
INSTALLED_APPS = [ ... 'users' ]
把数据库中的表生成对应的model
python manage.py inspectdb
将我们表的model拷贝到users下的models.py里
from django.db import models class User(models.Model): id = models.IntegerField(primary_key=True) name = models.CharField(max_length=255, blank=True, null=True) age = models.IntegerField(blank=True, null=True) class Meta: managed = False db_table = 'user'
创建一个序列化Serializer类,使之可以转化为,某种表现形式如json
在users目录下,创建文件serializers.py
from rest_framework import serializers from users.models import User class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields = "__all__"
数据输出
编写users下的views.py
from __future__ import unicode_literals from rest_framework.decorators import api_view from rest_framework.response import Response from user.models import User from user.serializers import UserSerializer @api_view(['GET']) def getlist(request): # 获取全部数据 if request.method == 'GET': users = User.objects.values('id', 'name', 'age').distinct() serializer = UserSerializer(users, many=True) return Response(serializer.data) @api_view(['GET']) def getlistpic(request): # 根据id查找单条数据 id = request.GET['id'] if id is not None: users = User.objects.filter(id=id) serializer = UserSerializer(users, many=True) return Response(serializer.data) else: return Response(str('请传id')) @api_view(['POST']) def addUser(request): # 添加数据 ser = UserSerializer(data=request.data) if ser.is_valid(): ser.save() return Response(ser.data) return Response(ser.errors) @api_view(['GET']) def deleteUser(request): # 根据id添加删除 id = request.GET['id'] if id is not None: if User.objects.filter(id=id): User.objects.get(id=id).delete() return Response(str('success')) else: return Response(str('没有此id')) else: return Response(str('请传id')) @api_view(['POST']) def updateUser(request): # 根据id修改数据 if User.objects.filter(id=request.data['id']): user = User.objects.get(id=request.data['id']) ser = UserSerializer(instance=user, data=request.data) # 注意指定参数 if ser.is_valid(): ser.save() return Response(str('success')) return Response(ser.errors) return Response(str('没有此id'))
在urls.py中设置:
from django.conf.urls import url from users import views as users_views urlpatterns = [ url(r'^getlistpic', users_views.getlistpic, name='home'), url(r'^getlist', users_views.getlist, name='home'), url(r'^addUser', users_views.addUser, name='home'), url(r'^deleteUser', users_views.deleteUser, name='home'), url(r'^updateUser', users_views.updateUser, name='home') ]
启动项目:
python manage.py runserver 127.0.0.1:8000
访问结果:
源码地址: myDjango
参考:
创建第一个Django项目
Python用Django写restful api接口
到此这篇关于Django开发RESTful API实现增删改查(入门级)的文章就介绍到这了,更多相关Django RESTful API增删改查内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!
相关文章
- 这篇文章主要介绍了WebStorm无法正确识别Vue3组合式API的解决方案,帮助大家更好的理解和学习使用vue框架,感兴趣的朋友可以了解下...2021-02-18
Django def clean()函数对表单中的数据进行验证操作
这篇文章主要介绍了Django def clean()函数对表单中的数据进行验证操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-09- 这篇文章主要介绍了浅谈vue2的$refs在vue3组合式API中的替代方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-18
- yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2使用中的一些基本的增删改查操作。 User::find()->all(); //返回所有用户数据; User::findOne($id); //返回 主键...2015-11-24
- 这篇文章主要介绍了如何使用 JavaScript 操作浏览器历史记录 API,帮助大家更好的理解和使用JavaScript,感兴趣的朋友可以了解下...2020-11-24
- 这篇文章主要介绍了vue设置全局访问接口API地址操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-14
- 这篇文章主要帮助大家理解JavaScript中worker事件api,对worker事件api有一个深刻了解,感兴趣的小伙伴们可以参考一下...2015-12-27
- 在日常开发中,总会接触到各种接口,前后端数据传输接口,第三方业务平台接口,下面这篇文章主要给大家介绍了关于如何设计一个安全的API接口的相关资料,需要的朋友可以参考下...2021-08-12
C# Windows API应用之基于GetDesktopWindow获得桌面所有窗口句柄的方法
这篇文章主要介绍了C# Windows API应用之基于GetDesktopWindow获得桌面所有窗口句柄的方法,结合实例形式分析了GetDesktopWindow函数用于获取窗口句柄的具体使用方法与相关注意事项,需要的朋友可以参考下...2020-06-25- 这篇文章主要介绍了Vue常用API、高级API的相关总结,帮助大家更好的理解和学习使用vue框架,感兴趣的朋友可以了解下...2021-02-04
- 这篇文章主要介绍了微信小程序 Image API实例详解的相关资料,需要的朋友可以参考下...2016-10-02
- 这篇文章主要介绍了uni-app 常用API,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-10-20
Swift 中如何使用 Option Pattern 改善可选项的 API 设计
这篇文章主要介绍了Swift 中如何使用 Option Pattern 改善可选项的 API 设计,帮助大家更好的进行ios开发,感兴趣的朋友可以了解下...2020-10-23微信小程序 wx.request(object) API详解及实例代码
这篇文章主要介绍了微信小程序 wx.request(object) API详解及实例代码的相关资料,需要的朋友可以参考下...2016-10-02- 这篇文章主要介绍了springboot RESTful以及参数注解的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-19
- restful接口常用的两种方式是get和post.接下来通过本文给大家介绍Restful接口的两种使用方式,本文给大家介绍的非常详细,需要的朋友参考下吧...2020-06-25
- 这篇文章主要介绍了Node.js API详解之 console模块用法,总结分析了Node.js API中console模块基本函数、使用方法与操作注意事项,需要的朋友可以参考下...2020-05-12
- ASP.NET Web API具有与ASP.NET MVC类似的编程方式,ASP.NET Web API不仅仅具有一个完全独立的消息处理管道,而且这个管道比为ASP.NET MVC设计的管道更为复杂,功能也更为强大。下面创建一个简单的Web API项目,需要的朋友可以参考下...2021-09-22
- 这篇文章主要介绍了在Django中使用MQTT的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-10
- 这篇文章主要介绍了c# webapi 配置swagger的方法,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-09