使用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发送邮件,注册时邮件获取验证码

    settings.py里面的配置 1 # 邮件 2 EMAIL_HOST = ‘smtp.163.com’ 3 # 设置端口号,为数字 4 EMAIL_PORT = 25 5 #设置发件人邮箱 6 EMAIL_HOST_USER = ‘kongfuzi_k@163.com’ 7 # 设置发件人 授权码 8 EMAIL_HOST_PASSWORD = ‘123…

    Django 2023年4月13日
    00
  • 使用Django+Pytest搭建在线自动化测试平台

    下面我将为您详细讲解使用Django+Pytest搭建在线自动化测试平台的完整攻略,并提供两条示例说明。 概述 首先,让我们来了解一下Django和Pytest。 Django是一个基于Python的Web框架,它采用了MVC结构,并提供了一系列的工具和API,使得开发Web应用变得更加简单和快速。 Pytest则是一种Python的测试框架,其支持多种类型…

    Django 2023年5月16日
    00
  • 如何使用Django(python)实现android的服务器端

    如何使用Django(python)实现 Android 的服务器端 在这篇攻略中,我们将会详细介绍如何在 Django 中构建一个 Android 服务器端应用程序。这个过程包括以下步骤: 创建 Django 项目并配置数据库连接 创建 Django App 数据库模型(Model)设计 编写 API 视图(Views) 视图测试 使用 Django RE…

    Django 2023年5月15日
    00
  • [django]session设置与获取原理

    admin登录 情况1: 登录后会产生一个sessionid 情况2: 自定义设置了key后,会多一个sessionid, 登录后会替换为登录后的sessionid的key值 if username == “maotai” and password == “123456”: request.session[‘name’] = “maotai-session”…

    Django 2023年4月10日
    00
  • Django项目中表的查询的操作

    在 Django 项目中进行表的查询操作是开发过程中非常常见的任务,可以用来获取表中的特定实例或者实例集合,以便将它们展示给用户、对它们进行修改,等等。在本篇文章中,我们将深入探讨 Django 中表的查询操作的完整攻略。 一、查询操作的基本语法 Django 中查询操作是通过模型对象(即 models.py 中的模型定义)来实现的。最简单的查询方法是对模型…

    Django 2023年5月16日
    00
  • Django 使用VScode 创建工程的详细步骤

    下面是详细的步骤和两个示例: 安装VSCode和Python环境 在开始Django项目之前,首先需要安装VSCode和Python环境。 下载和安装VSCode。 下载和安装Python,注意版本应该是3.x系列。 创建Django项目 打开VSCode,创建一个新的工作空间。 使用以下命令创建Django项目(假设项目名为myproject): pyth…

    Django 2023年5月16日
    00
  • on_delete django之ORM操作之Foreignkey

    on_delete指的是通过ForeignKey连接起来的对象被删除后,当前字段怎么变化。 常见的选项有:   models.CASCADE,对就对象删除后,包含ForeignKey的字段也会被删除   models.PROTECT,删除时会引起ProtectedError   models.SET_NULL,注意只有当当前字段设置null设置为True才有…

    Django 2023年4月10日
    00
  • Python Django教程之模板的使用

    让我针对“Python Django教程之模板的使用”的完整攻略进行详细说明。 什么是Django模板 Django模板是Django框架中一种方便且灵活的方法,用于渲染文本模板。模板与网站开发中的视图函数和数据访问相结合,能够在服务器端生成动态网页。 Django模板引擎使用的是Django模板语言(DTL),它是一个基于HTML的模板引擎,并且添加了一些…

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