使用Django开发简单接口实现文章增删改查

下面我将详细讲解使用Django开发简单接口实现文章增删改查的完整攻略。

简介

Django是一个基于MVC架构的Web开发框架,提供了一整套用于快速开发高质量Web应用程序所需的组件和工具。在Django中,我们可以使用ORM(Object Relational Mapping)来操作数据库,从而方便地对数据库进行增删改查操作。

开发环境要求

  • Python3
  • Django

创建Django项目

首先,我们需要创建一个Django项目。在终端中输入以下命令:

django-admin startproject demo_project

创建Django应用

在创建完Django项目后,我们需要创建一个Django应用。在终端中输入以下命令:

cd demo_project
python3 manage.py startapp article

数据库模型设计

在进行数据的操作前,我们需要先设计好数据库模型。在article应用的models.py文件中,创建Article模型,代码如下:

from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=50)
    content = models.TextField()
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.title

其中,Article模型中包含文章的标题(title)、内容(content)、创建时间(created)、更新时间(updated)四个字段。

接口实现

获取文章列表

获取文章列表,我们需要创建一个API接口。在article应用的views.py文件中,添加以下代码:

from rest_framework.decorators import api_view
from rest_framework.response import Response
from .models import Article

@api_view(["GET"])
def article_list(request):
    articles = Article.objects.all()
    data = [{"id": article.id, "title": article.title} for article in articles]
    return Response(data)

该接口返回文章的id和title。

获取单个文章详情

获取单个文章详情需要传递文章id。在article应用的views.py文件中,添加以下代码:

@api_view(["GET"])
def article_detail(request, pk):
    try:
        article = Article.objects.get(pk=pk)
        data = {"id": article.id, "title": article.title, "content": article.content}
        return Response(data)
    except Article.DoesNotExist:
        return Response(status=404)

该接口返回文章的id、title和content。

创建文章

在article应用的views.py文件中,添加以下代码:

@api_view(["POST"])
def article_create(request):
    title = request.data.get("title")
    content = request.data.get("content")
    article = Article.objects.create(title=title, content=content)
    data = {"id": article.id, "title": article.title, "content": article.content}
    return Response(data)

该接口根据传递过来的title和content创建文章,并返回文章的id、title和content。

更新文章

在article应用的views.py文件中,添加以下代码:

@api_view(["PUT"])
def article_update(request, pk):
    try:
        article = Article.objects.get(pk=pk)
        title = request.data.get("title")
        content = request.data.get("content")
        article.title = title
        article.content = content
        article.save()
        data = {"id": article.id, "title": article.title, "content": article.content}
        return Response(data)
    except Article.DoesNotExist:
        return Response(status=404)

该接口根据传递过来的id,更新文章的title和content,并返回文章最新的id、title和content。

删除文章

在article应用的views.py文件中,添加以下代码:

@api_view(["DELETE"])
def article_delete(request, pk):
    try:
        article = Article.objects.get(pk=pk)
        article.delete()
        return Response(status=204)
    except Article.DoesNotExist:
        return Response(status=404)

根据传递过来的id,删除对应的文章,并返回204。

配置URL

在demo_project下的urls.py文件中,添加以下代码:

from django.urls import path, include
from rest_framework.routers import DefaultRouter
from article.views import article_list, article_detail, article_create, article_update, article_delete

router = DefaultRouter()
urlpatterns = router.urls

urlpatterns += [
    path('article/', article_list),
    path('article/<int:pk>/', article_detail),
    path('article/new/', article_create),
    path('article/<int:pk>/edit/', article_update),
    path('article/<int:pk>/delete/', article_delete),
]

测试接口

在终端中输入以下命令启动服务器:

python3 manage.py runserver

然后使用Postman等工具,分别调用文章的增删改查接口,观察数据库数据是否发生变化。

示例说明一

例如,我们要添加一篇新文章,我们可以执行以下命令:

curl -X POST \
  http://localhost:8000/article/new/ \
  -H 'content-type: application/json' \
  -d '{
        "title": "New Article",
        "content": "New Article Content"
      }'

执行完该命令后,数据库中应该会新增一条数据。

示例说明二

例如,我们要获取文章列表,我们可以执行以下命令:

curl -X GET \
  http://localhost:8000/article/ \
  -H 'content-type: application/json'

执行完该命令后,应该会返回所有文章的id和title。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Django开发简单接口实现文章增删改查 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • django,inspectdb,操作已经存在的表

    1.Django附带了一个名为inspectdb程序,它可以通过现有数据库来创建模型,并将相关模型代码另存到指定文件中。在新建的newmodels.py文件中挑选指定表格对应的模型代码,并将其复制到相关的文件中。 1 python manage.py inspectdb > newmodels.py 若要操作指定数据库,使用如下代码: 1 python…

    Django 2023年4月12日
    00
  • Django 构建模板form表单的两种方法

    下面我将详细讲解Django构建模板form表单的两种方法,并提供两个示例。 方法一:使用Django模板默认的form表单 Django模板默认提供了form表单的渲染,方便我们快速地渲染出一个表单。 使用此方法时,需要在视图函数中定义一个form变量,并为其赋值为一个forms.Form对象(也可以是子类或其他表单类)。然后在模板中,使用form.as_…

    Django 2023年5月16日
    00
  • 在Django中操作MySQL数据库1:原生 sql 语句操作

    在 Django 中操作数据库有两种方式。第一种方式就是使用原生sql语句操作,第二种就是使用 ORM模型来操作。这里介绍第一种。 Python 操作 MySQL 数据库 Python 标准数据库接口为Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。 DB-API 是一个规范. 它定义了一系列必须的对象和数据库存取方…

    Django 2023年4月9日
    00
  • django:token认证,以及http401和http403的区别

    首先token认证环境搭建: 安装模块:pip install djangorestframework 在settings中添加参数: 如图: 继续添加REST_FRAMEWORK项: 如图: 配置如下: REST_FRAMEWORK = { # 权限验证,全局配置 “DEFAULT_PERMISSION_CLASSES”:( ‘rest_framework…

    Django 2023年4月12日
    00
  • Django Docker容器化部署之Django-Docker本地部署

    下面我详细讲解 “Django Docker容器化部署之Django-Docker本地部署” 的完整攻略,包含两个示例: 简介 Docker 是目前最受欢迎的容器化技术之一,它的出现改变了程序开发和部署的方式,为我们提供了更好的便捷性和弹性。本文将详细介绍如何用 Docker 容器化部署 Django 应用程序。 示例一:使用 Docker 镜像方式部署 D…

    Django 2023年5月15日
    00
  • Django框架(二十八)—— Django缓存机制

    一、什么是缓存 动态网站中,用户请求都要去服务器的数据库中增删改查,会消耗很大的资源,因此,使用缓存在减轻服务器的压力。 缓存是将一些常用的数据保存内存或者memcache中,在一定的时间内有人来访问这些数据时,则不再去执行数据库及渲染等操作,而是直接从内存或memcache的缓存中去取得数据,然后返回给用户。 二、Django的6中缓存方式及配置(只需要改…

    Django 2023年4月10日
    00
  • Django权限机制实现代码详解

    下面是对“Django权限机制实现代码详解”的完整攻略,包括两个示例说明。 一、Django权限机制的概述 Django的权限机制允许开发者对不同用户(或用户组)授予不同的权限,以实现对应用程序访问的控制。Django自带的权限系统非常强大,能够满足大多数应用场景的要求。 在Django中实现权限控制需要掌握以下几个概念: 用户(User):指使用应用程序的…

    Django 2023年5月16日
    00
  • Django使用DjangoUeditor教程

    文章目录 1、将下在DjangoUeditor解压2、将解压的文件夹复制到项目的根目录中,这里使用的是虚拟环境3、进入到DjangoUedior3-master文件下,执行离线安装命令 python setup.py install4、然后将DjangoUeditor3-master文件夹删除,避免影响项目结构5、执行pip list 查看是否安装成功,如果…

    Django 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部