文章目录
一、参考资料
参考官方网址: https://yiyibooks.cn/xx/django_182/index.html.
二、类视图的好处以及使用
类视图的好处:
以函数的方式定义的视图称为函数视图,函数视图便于理解。但是遇到一个视图对应的路径提供了多种不同HTTP请求方式的支持时,便需要在一个函数中编写不同的业务逻辑,代码可读性与复用性都不佳。
在Django中也可以使用类来定义一个视图,称为类视图。使用类视图可以将视图对应的不同请求方式以类中的不同方法来区别定义。
使用类视图:
代码可读性好;
类视图相对于函数视图有更高的复用性, 如果其他地方需要用到某个类视图的某个特定逻辑,直接继承该类视图即可。
第一步、导包
在view.py文件中导包
from django.views.generic import View
第二步、定义class类
class TestView(View):
#View是必须要写的
def get(self,request):
#request也是必须要写的
#...要执行的代码块...
pass
def post(self,request):
#request也是必须要写的
#...要执行的代码块...
pass
#注释:这里的get方法当request.method == "GET"(get请求) 时会执行;
#post方法当request.method == "POST"(post请求)时会执行。
第三步、配置url
urlpatterns = [
path('test/', views.TestView.as_view(),name = 'test'),#(这是django2.0版本以后,以前版本使用的是url,请注意版本的不同,若使用的是url的话,可以仔细阅读前面的图片,里面有示例)
]
注意:当通过网址请求访问页面时,这是一个get请求,其调用的是类中的get方法,当在页面中的表单中没有写action属性的话,谁展示出的页面,就调用该类的post方法处理表单的post请求。还有就是如果在页面中使用表单以POST方式提交信息,需要在表单中添加{% csrf_token %}。