千家信息网

Django如何开发RESTful API实现增删改查

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇"Django如何开发RESTful API实现增删改查"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下
千家信息网最后更新 2026年11月03日Django如何开发RESTful API实现增删改查

这篇"Django如何开发RESTful API实现增删改查"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Django如何开发RESTful API实现增删改查"文章吧。

新建一个Django项目:

django-admin.py startproject myDjango

目录介绍

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 pymysqlpymysql.version_info = (1, 4, 13, "final", 0)pymysql.install_as_MySQLdb()

新建app

python manage.py startapp users

目录介绍:

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 modelsclass 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 serializersfrom users.models import Userclass UserSerializer(serializers.ModelSerializer):    class Meta:        model = User        fields = "__all__"

数据输出

编写users下的views.py

from __future__ import unicode_literalsfrom rest_framework.decorators import api_viewfrom rest_framework.response import Responsefrom user.models import Userfrom 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 urlfrom users import views as users_viewsurlpatterns = [    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

以上就是关于"Django如何开发RESTful API实现增删改查"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

数据 文件 内容 目录 开发 项目 函数 数据库 文章 模型 知识 篇文章 中设 应用 生成 管理 代码 价值 信息 功能 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 华服互联网科技怎么样 互联网属科技 鸠鸠互联网科技 互联网科技logo 顺网科技2021年互联网排名 互联网科技生活的内容 互联网科技创新企业排名 互联网巨头投资的硬核科技 中化能源互联网科技招聘 阿大互联网科技有限公司 国大互联网教育科技有限公司工作 畅思互联网科技 科技大学互联网 山东有哪些互联网科技公司 广州百诚互联网科技有限公司官网 浙南科技城互联网大厦招聘 广州三三互联网科技有限公司 第三届互联网大会安防黑科技 东风日产互联网科技公司叫什么 山东亿川互联网科技有限责任公司 互联网科技公司经营范围 中资互联网科技 北京互联网科技有限公司 上海卓越科技 互联网 福州新华互联网科技学校 知乎 互联网科技寓意 南博望互联网科技有限公司 吉林省码上互联网科技电话 互联网领先科技成果宣传视频 伍佰万互联网科技是干嘛的
0