django实现增删改查分页接口

django实现增删改查分页接口(小白必备)

在上篇文章中我使用nodejs实现了增删改查分页接口,这一篇我们则使用django实现。

1.创建一个django项目,命令如下

python manage.py startapp myapp
2.在你自己的myapp文件夹中的models.py中定义你们自己的模型

javascript 复制代码
from django.db import models

class 名字(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=100)
	等

3.迁移数据库,创建模型的数据表,通过以下两行命令

javascript 复制代码
python manage.py makemigrations
python manage.py migrate

4.在myapp文件夹中的views.py文件中编写处理请求

javascript 复制代码
from django.core.paginator import Paginator
from django.http import JsonResponse
from myapp.models import Book

def get_books(request):
    # 获取所有书籍
    books = Book.objects.all()

    # 分页
    paginator = Paginator(books, 10) # 每页显示10条记录
    page_number = request.GET.get('page') # 获取页码参数
    page_obj = paginator.get_page(page_number)

    # 构造返回数据
    data = {
        'current_page': page_obj.number,
        'total_pages': paginator.num_pages,
        'books': [
            {'title': book.title, 'author': book.author, 'publication_date': str(book.publication_date)}
            for book in page_obj.object_list
        ]
    }

    return JsonResponse(data)

def create_book(request):
    # 获取POST请求数据
    title = request.POST.get('title')
    author = request.POST.get('author')
    publication_date = request.POST.get('publication_date')

    # 创建书籍对象并保存
    book = Book(title=title, author=author, publication_date=publication_date)
    book.save()

    return JsonResponse({'message': 'Book created successfully'})

def update_book(request, book_id):
    # 获取PUT请求数据
    title = request.PUT.get('title')
    author = request.PUT.get('author')
    publication_date = request.PUT.get('publication_date')

    # 更新书籍对象
    book = Book.objects.get(id=book_id)
    book.title = title
    book.author = author
    book.publication_date = publication_date
    book.save()

    return JsonResponse({'message': 'Book updated successfully'})

def delete_book(request, book_id):
    # 删除书籍对象
    book = Book.objects.get(id=book_id)
    book.delete()

    return JsonResponse({'message': 'Book deleted successfully'})

5.在项目的urls.py文件中配置URL路由

javascript 复制代码
from django.urls import path
from myapp.views import get_books, create_book, update_book, delete_book

urlpatterns = [
    path('books/', get_books),
    path('books/create/', create_book),
    path('books/update/<int:book_id>/', update_book),
    path('books/delete/<int:book_id>/', delete_book),
]

6.运行项目

javascript 复制代码
python manage.py runserver

到这里也就结束了,希望对您有所帮助。

相关推荐
ZWZhangYu2 小时前
LangChain 构建向量数据库和检索器
数据库·langchain·easyui
Python×CATIA工业智造2 小时前
Frida RPC高级应用:动态模拟执行Android so文件实战指南
开发语言·python·pycharm
onceco2 小时前
领域LLM九讲——第5讲 为什么选择OpenManus而不是QwenAgent(附LLM免费api邀请码)
人工智能·python·深度学习·语言模型·自然语言处理·自动化
feifeigo1233 小时前
升级到MySQL 8.4,MySQL启动报错:io_setup() failed with EAGAIN
数据库·mysql·adb
狐凄3 小时前
Python实例题:基于 Python 的简单聊天机器人
开发语言·python
悦悦子a啊4 小时前
Python之--基本知识
开发语言·前端·python
火龙谷4 小时前
【nosql】有哪些非关系型数据库?
数据库·nosql
焱焱枫5 小时前
Oracle获取执行计划之10046 技术详解
数据库·oracle
笑稀了的野生俊6 小时前
在服务器中下载 HuggingFace 模型:终极指南
linux·服务器·python·bash·gpu算力
Naiva6 小时前
【小技巧】Python+PyCharm IDE 配置解释器出错,环境配置不完整或不兼容。(小智AI、MCP、聚合数据、实时新闻查询、NBA赛事查询)
ide·python·pycharm