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

yizhihongxing

下面我将详细讲解使用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日

相关文章

  • Python3创建django项目

    1,安装Python环境 2.在cmd命令行,用pip安装Djang。我用的Python3。所以pip3 install django 查看Django环境是否正常,引入包没有报错,说明环境正确: 3.在pycharm里创建Django项目   用命令行创建:     进入想要安置项目的目录,命令行输入:django-admin startproject m…

    2023年4月10日
    00
  • Django 1.8 admin 产生’WSGIRequest’ object has no attribute ‘user’的错误

        配置admin时,产生’WSGIRequest’ object has no attribute ‘user’的错误   google了下,说是MIDDLEWARE配置的有问题,顺序应该保持参见(http://stackoverflow.com/questions/26576192/wsgirequest-object-has-no-attribut…

    Django 2023年4月15日
    00
  • Django框架之给客户端返回数据

    在Django框架中,我们可以通过视图函数返回响应对象来给客户端返回指定的数据。 接下来我将给大家简述一下如何利用响应对象给客户端返回指定数据。 1. 自定义响应对象 第一种方式: from django.http import HttpResponse, JsonResponse# 自定义响应对象 def index(request): # 第一种方式构建…

    Django 2023年4月12日
    00
  • django用户信息扩展

    Django封装了好多东西,拿来用就可以了,帮我们封装类用户的登录认证,用户的表 所以Django自带有用户表,当扩展用户表后一些表就会被替换 用户认证相关的    功能放在django.contrib.auth的一个app当中,在INSTALLED_APPS中可以看到 主要处理用户信息,权限,认证 Django遵循开闭原则 所以不修改源代码,方便框架升级 …

    Django 2023年4月12日
    00
  • Django与MVC

    Django是遵循MVC设计模式的一个框架:MVC(Model,View,Controller);模型,视图,控制器:如图: Django其实是一个MTV的模型:(Model,Template,VIew)模型,模板,视图  

    2023年4月9日
    00
  • Django-用户权限,用户角色使用指南(转载)

      向前冲我在路上 关注  0.1 2018.09.20 19:54 字数 1253 阅读 1124评论 0喜欢 8 前言(借鉴老师笔记) RBAC(Role-Based Access Control,基于角色的访问控制)就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这…

    Django 2023年4月12日
    00
  • Django-response对象

    HttpResponse的使用 HttpRequest对象由Django自动创建,HttpResponse对象则由我们手动创建。我们设计的每一个视图都需要实例化,填充和返回一个HttpResponse,也就是函数的return的值。 传递字符串 from django.http import HttpResponse response = HttpRespo…

    Django 2023年4月11日
    00
  • Python+django实现文件下载

    下面是关于Python+django实现文件下载的完整攻略以及两条示例说明。 什么是Django? Django是一个Python Web框架,采用了MVC的软件架构模式,是一个全功能的高级Web框架。Django的官方网站是djangoproject.com。 Django实现文件下载的方法 在Django中,可以通过编写视图函数实现文件的下载。 示例1:…

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