Django基于类视图实现增删改查

第一步:导入View

from django.views import View

第二步:新建这个基类


class CLS_executer(View):
    db = DB_executer

    def get(self, request):
        executer_list = list(self.db.objects.all().values())
        return HttpResponse(json.dumps(executer_list), content_type='application/json')

    def post(self, request):
        data = json.loads(request.body)
        self.db.objects.create(**data)
        return self.get(request)

    def put(self, request):
        data = json.loads(request.body)
        self.db.objects.filter(id=int(data['id'])).update(**data)
        return self.get(request)

    def delete(self, request):
        id = request.GET['id']
        self.db.objects.filter(id=int(id)).delete()
        return self.get(request)

第三步:去urls.py中设置好类视图映射

urlpatterns = [
    path('executer/', CLS_executer.as_view())
]

第四步:校验

get方法直接浏览器请求:{服务器ip:端口号}/executer就行,post、put、delete可以用postman校验

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 Django 模型定义示例: ```python from django.db import models class Book(models.Model): title = models.CharField(max_length=100) author = models.CharField(max_length=50) published_date = models.DateField() def __str__(self): return self.title ``` 这个模型定义了一个名为 `Book` 的数据模型,包含书的标题、作者和出版日期。`__str__` 方法用于返回模型的字符串表示。 接下来,我们需要实现一个视图来处理前端页面的增删改查操作。这里我们使用 Django 自带的通用视图。 ```python from django.views.generic.list import ListView from django.views.generic.edit import CreateView, UpdateView, DeleteView from django.urls import reverse_lazy from .models import Book class BookListView(ListView): model = Book template_name = 'book_list.html' context_object_name = 'books' class BookCreateView(CreateView): model = Book template_name = 'book_form.html' fields = ['title', 'author', 'published_date'] success_url = reverse_lazy('book_list') class BookUpdateView(UpdateView): model = Book template_name = 'book_form.html' fields = ['title', 'author', 'published_date'] success_url = reverse_lazy('book_list') class BookDeleteView(DeleteView): model = Book template_name = 'book_confirm_delete.html' success_url = reverse_lazy('book_list') ``` 这个视图包含了四个,分别用于显示书籍列表、创建、更新和删除书籍。这些视图都基于 Django 的基本视图 `ListView`、`CreateView`、`UpdateView` 和 `DeleteView`。我们还需要定义相应的模板来呈现这些视图。 以下是一个简单的书籍列表页面模板 `book_list.html`: ```html {% extends 'base.html' %} {% block content %} <h1>Book List</h1> <ul> {% for book in books %} <li>{{ book.title }}</li> {% empty %} <li>No books yet.</li> {% endfor %} </ul> <a href="{% url 'book_create' %}">Add Book</a> {% endblock %} ``` 这个模板通过使用 Django 模板语言来迭代渲染书籍列表,并提供一个链接来添加新书籍。 以下是一个简单的书籍表单页面模板 `book_form.html`: ```html {% extends 'base.html' %} {% block content %} <h1>{% if object.pk %}Update{% else %}Create{% endif %} Book</h1> <form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">{% if object.pk %}Update{% else %}Create{% endif %}</button> </form> {% endblock %} ``` 这个模板渲染一个书籍表单,并提供一个提交按钮来创建或更新书籍。 以下是一个简单的书籍删除确认页面模板 `book_confirm_delete.html`: ```html {% extends 'base.html' %} {% block content %} <h1>Delete Book</h1> <p>Are you sure you want to delete "{{ object }}"?</p> <form method="post"> {% csrf_token %} <button type="submit">Delete</button> <a href="{% url 'book_list' %}">Cancel</a> </form> {% endblock %} ``` 这个模板渲染一个删除确认页面,并提供一个提交按钮来删除书籍,以及一个取消链接来返回书籍列表页面。 最后,我们需要定义一个 URL 映射来将这些视图和模板链接起来。这里使用 Django 的 URLconf 来实现。 ```python from django.urls import path from .views import BookListView, BookCreateView, BookUpdateView, BookDeleteView urlpatterns = [ path('', BookListView.as_view(), name='book_list'), path('create/', BookCreateView.as_view(), name='book_create'), path('update/<int:pk>/', BookUpdateView.as_view(), name='book_update'), path('delete/<int:pk>/', BookDeleteView.as_view(), name='book_delete'), ] ``` 这个 URL 映射将每个视图链接到相应的 URL,并指定每个视图的名称。现在,我们就可以通过访问相应的 URL 来使用这些视图了。 这样,我们就完成了一个简单的 Django 应用程序,可以进行前端页面的增删改查操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值