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

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


类视图

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 includeurlpatterns = [path('admin/', admin.site.urls),path("add_book2/", views.AddBookView.as_view(), name = "add_book2"),
]

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

点击提交

  • 举个例子(定义http_method_not_allowed方法)

如果在上面的例子中,我们只有get方法,没有post方法,但是,我们却进行了post操作,那么Django会把这个请求转发给http_method_not_allowed方法:

class AddBookView(View):def get(self, request, *args, **kwargs):return render(request, "add_book.html")def http_method_not_allowed(self, request, *args, **kwargs):return HttpResponse("您当前采用的method是:%s,本视图只支持使用get请求!" % request.method)

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

点击提交

Django从理论到实战(part46)--View类相关推荐

  1. Django从理论到实战(part47)--ListView类

    学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y: 文章目录 类视图 ListView类 举个例子 Paginator和Page类 Paginator常用属性 Pag ...

  2. Django从理论到实战(part44)--JsonResponse类

    学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y: JsonResponse类 如果我们想向浏览器传递Json类型数据,可以使用JsonResponse类.该类会将对 ...

  3. Django从理论到实战(part9)--path和re_path

    学习笔记,仅供参考 参考自:Django打造大型企业官网: 本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列中,尽量详细的写 ...

  4. Django从理论到实战(part50)--使用模型来处理上传的文件

    学习笔记,仅供参考,有错必纠 文章目录 使用模型来处理上传的文件 `MEDIA_ROOT`和`MEDIA_URL` 限制文件的扩展名 使用模型来处理上传的文件 在定义模型的时候,我们可以给存储文件的字 ...

  5. Django从理论到实战(part45)--下载CSV文件

    学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y: 文章目录 CSV文件 生成小的CSV文件 将`csv`文件定义成模板 生成大的CSV文件 StreamingHtt ...

  6. Django从理论到实战(part35)--QuerySetAPI

    学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y:官方文档 QuerySet API 我们通常做查询操作的时候,都是通过模型名字.objects的方式进行操作.其实模 ...

  7. Django从理论到实战(part32)--外键删除

    学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y: 外键删除 在学习外键删除之前,我们先学习一下外键. 外键 比如,我们有一个User和一个Article两个模型,U ...

  8. Django从理论到实战(part30)--Meta配置

    学习笔记,仅供参考 参考自:Django打造大型企业官网–Huang Y: 本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列 ...

  9. Django从理论到实战(part27)--ORM模型的增删改查操作

    学习笔记,仅供参考 参考自:Django打造大型企业官网–Huang Y: 本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列 ...

最新文章

  1. python 开发框架
  2. 用 python 解决汉诺塔问题并附带演示过程
  3. 样例问题 Example question for A4M33MPV course
  4. nyoj-619 青蛙过河
  5. 从零点五开始用Unity做半个2D战棋小游戏(七)
  6. ECMAScript 2016(ES7)新特性简介
  7. cURL模拟POST方式提交数据
  8. php fast cgi nginx,通过fast-cgi连接php-fpm和nginx之间的连接是持久的(保持活动)连接吗?...
  9. DP || HYSBZ 1207 打鼹鼠
  10. java 日期calendar_Java中用Calendar类计算周和周的起始日期(转)
  11. 电脑计算机里怎么找恢复出厂设置,普通电脑怎么恢复出厂设置
  12. 动态下拉框中如何使用常量?
  13. 利用GPU加速的软件
  14. sql插入不重复的数据
  15. 计算机科学中的计算机思维在本质上源自于,计算思维对学习计算机知识有何作用?...
  16. 第二个暴力猴脚本- 改写后用iframe抓取携程某个城市所有起飞、到达航班并保存
  17. 远程连接服务器出现channel is not opened通道未打开
  18. 世上真有后悔药,删除的数据文件可恢复,6款免费数据恢复软件
  19. 罗永浩跟罗振宇八个半小时都聊了些什么
  20. 数据人之苦,你造吗?(转自知乎)

热门文章

  1. 细胞分裂java移植_胚胎移植前,先调理好你的子宫内膜!
  2. 机器学习(三十四)——策略梯度
  3. linux is not unix由来,一些奇怪的 unix 指令名字的由来
  4. mysql常用sql语句优化
  5. 用PHP写一个最简单的解释器Part1
  6. Azure系列2.1.13 —— CloudBlockBlob
  7. 对 Strong-Weak Dance的思考
  8. 攻略:如何快速赚取积分,Get云栖大会资料
  9. python-base64编码与解码
  10. C0304 备份最后一天所有修改的文件