使用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简介以及基本使用

    目录 Django简介以及基本使用 一、django简介 1.web框架的本质是什么 ? 2.python主流web框架有那些 ? 3.web框架的推导过程 二、基本使用 1.运行django注意事项 2.下载Django的终端命令行 3.验证django是否下载成功 4.终端命令行创建django命令行 5.启动django项目 6.命令行创建应用 7.d…

    2023年4月10日
    00
  • 详解Django Meta元数据类属性解析

    在 Django 中,每个模型都包含一个名为 Meta 的内部类,该类允许我们声明有关模型的元数据。这些元数据可以用来控制模型的特定方面的行为,例如它们的排序,或者将模型转换为某个特定的格式。 下面是一些常见的 Django 元数据类属性及其含义: db_table db_table用于定义模型的数据库表名。如果没有指定,Django 使用模型类的名称和小写…

    Django 2023年3月13日
    00
  • django 多数据库配置教程

    下面是关于“django 多数据库配置教程”的详细攻略。 第一步: 安装数据库驱动 在本教程中,我们使用MySQL和SQLite两个数据库来进行示例。因此,我们需要分别安装两个数据库驱动程序。 安装MySQL驱动: pip install mysqlclient 注意:如果在Windows系统上安装mysqlclient失败,请使用以下命令: pip ins…

    Django 2023年5月16日
    00
  • 【服务后端】MySQL数据库与Django Models不一致问题解决

    1 背景 1.8 Django的APP目录下有makemigrations文件夹,这个文件夹中的文件误删除过,后面从其他电脑的工程目录中拷贝了过来。 进行了python manage.py makemigrations和python manage.py migrate操作。 由于前后的makemigrations的文件不一致,导致数据库中的字段与Django…

    Django 2023年4月13日
    00
  • Python – Django – 模板语言之自定义过滤器

    在 app01 下新建一个 templatetags 的文件夹,然后创建 myfilter.py 文件 这个 templatetags 名字是固定的,myfilter 是自己起的 myfilter.py: from django import template register = template.Library() @register.filter(na…

    Django 2023年4月10日
    00
  • Django学习之一:Install Djongo 安装Djongo

    Install Djongo 安装Djongo Djongo是基于python的web框架,自然安装最关心的是python解释器版本了。 Prerequisites 安装条件 Python版本与Djongo版本两者之间的兼容关系 Django Version Python versions 1.11 2.7;3.4;3.5;3.6 2.0 3.4;3.5;3…

    Django 2023年4月11日
    00
  • django与python版本对应关系 附加djangorestframework框架

    Django与python版本 Django 1.11版本兼容Python 2.7、3.4、3.5、3.6、3.7(added in 1.11.17)# 1.11.5 python<=3.6 Django 2.0版本兼容Python 3.4、3.5、3.6、3.7 Django 2.1、2.2版本兼容Python 3.5、3.6、3.7 Django …

    Django 2023年4月13日
    00
  • django2 + python3 显示静态文件中的图片

    之前一直搞不出来 是因为图片的问题,步骤也就是固定的几步,到位了就差不多成了文件夹结构:. ├── HelloWorld │   ├── __init__.py │   ├── __pycache__ │   │   ├── __init__.cpython-36.pyc │   │   ├── settings.cpython-36.pyc │   │  …

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