Django中View类在实战中的应用与原理,第46部分讲解?

2026-06-10 22:391阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计467个文字,预计阅读时间需要2分钟。

Django中View类在实战中的应用与原理,第46部分讲解?

学习笔记,仅供参考,有错必纠+参考自:Django打造大型企业官网——Huang Y;

类视图+View类+django.views.generic.base.View是主要的类视图,所有的类视图都继承自它,我们写自己的类视图,也继承自它。

学习笔记,仅供参考,有错必纠

参考自:Django打造大型企业官网–Huang Y;


类视图



Django中View类在实战中的应用与原理,第46部分讲解?

View类



django.views.generic.base.View是主要的类视图,所有的类视图都是继承自他,我们写自己的类视图,也可以继承自他。

如果该视图只能使用​​get​​​的方式来请求,那么就可以在这个类中定义​​get(self,request,*args,**kwargs)​​​方法;如果只需要实现​​post​​​方法,那么就只需要在类中实现​​post(self,request,*args,**kwargs)​​。



  • 举个例子(拥有get和post方法)


首先,我们定义视图类AddBookView:

class AddBookView(View):
def get(self, request, *args, **kwargs):
return render(request, "add_book.html")

def post(self, request, *args, **kwargs):
book = request.POST.get("book", "")
price = request.POST.get("price", "")
tags = request.POST.getlist("tags")
context = {
"book":book,
"price":price,
"tags":tags
}

return render(request, "show_books.html", context = context)



再定义主urls.py文件:

from django.contrib import admin
from django.urls import path
from . import views
from django.conf.urls import include

urlpatterns = [
path('admin/', admin.site.urls),
path("add_book2/", views.AddBookView.as_view(), name = "add_book2"),
]



向127.0.0.1:8000/add_book2/发起请求,填写form表单:

点击​​提交​​:



  • 举个例子(定义127.0.0.1:8000/add_book2/发起请求,填写form表单:

    点击​​提交​​:



本文共计467个文字,预计阅读时间需要2分钟。

Django中View类在实战中的应用与原理,第46部分讲解?

学习笔记,仅供参考,有错必纠+参考自:Django打造大型企业官网——Huang Y;

类视图+View类+django.views.generic.base.View是主要的类视图,所有的类视图都继承自它,我们写自己的类视图,也继承自它。

学习笔记,仅供参考,有错必纠

参考自:Django打造大型企业官网–Huang Y;


类视图



Django中View类在实战中的应用与原理,第46部分讲解?

View类



django.views.generic.base.View是主要的类视图,所有的类视图都是继承自他,我们写自己的类视图,也可以继承自他。

如果该视图只能使用​​get​​​的方式来请求,那么就可以在这个类中定义​​get(self,request,*args,**kwargs)​​​方法;如果只需要实现​​post​​​方法,那么就只需要在类中实现​​post(self,request,*args,**kwargs)​​。



  • 举个例子(拥有get和post方法)


首先,我们定义视图类AddBookView:

class AddBookView(View):
def get(self, request, *args, **kwargs):
return render(request, "add_book.html")

def post(self, request, *args, **kwargs):
book = request.POST.get("book", "")
price = request.POST.get("price", "")
tags = request.POST.getlist("tags")
context = {
"book":book,
"price":price,
"tags":tags
}

return render(request, "show_books.html", context = context)



再定义主urls.py文件:

from django.contrib import admin
from django.urls import path
from . import views
from django.conf.urls import include

urlpatterns = [
path('admin/', admin.site.urls),
path("add_book2/", views.AddBookView.as_view(), name = "add_book2"),
]



向127.0.0.1:8000/add_book2/发起请求,填写form表单:

点击​​提交​​:



  • 举个例子(定义127.0.0.1:8000/add_book2/发起请求,填写form表单:

    点击​​提交​​: