当在要做页面路由时,可以把多个路由组合成一个。
首先先引入一个包

然后让一个类继承这个包

这里用登录与注册页面举个栗子
一般登录页面时用GET方法,点击注册时将会使用POST方法提交数据并跳转注册处理页面,所以要调用父类的get方法与post方法。

class RegisterView(View):'''注册'''def get(self,request):'''显示注册页面'''return render(request,'register.html')def post(self,request):'''进行注册处理'''# 接受数据username = request.POST.get('user_name')  # 用户名password = request.POST.get('pwd')  # 密码email = request.POST.get('email')  # 邮箱allow = request.POST.get('allow')# 进行数据校验if not all([username, password, email]):# 数据不完整return render(request, 'register.html', {'errmsg': '数据不完整'})# 校验邮箱if not re.match(r'^[a-z0-9][\w.\-]*@[a-z0-9\-]+(\.[a-z]{2,5}){1,2}$', email):return render(request, 'register.html', {'errmsg': '邮箱格式不正确'})if allow != 'on':return render(request, 'register.html', {'errmsg': '请同意协议'})# 校验用户名是否重复try:user = User.objects.get(username=username)except User.DoesNotExist:# 用户名不存在user = Noneif user:# 用户名已存在return render(request, 'register.html', {'errmsg': '用户名已存在'})# 进行业务处理:进行用户注册user = User.objects.create_user(username, email, password)user.is_active = 0user.save()# 返回一个应答,跳转到首页return redirect(reverse('goods:index'))  # 首页


在配置路由界面需要调用as_view()函数,也就是View里面的as_view(),它就会区分你的method
(页面请求方法)来调用不用的方法。
当请求页面方法为GET方法时,就会触发父类的get方法来打开注册页面,
当请求页面方法为POST方法时,就会触发父类的post方法来打开注册处理页面。
View里面还有delete,put,options方法,可运用的后台开发中,让路由整合,更方便快捷。

python里的jango类视图相关推荐

  1. 自学Python第二十二天- Django框架(三) AJAX、文件上传、POST 请求类型之间的转换、多APP开发、iframe、验证码、分页器、类视图、中间件、信号、日志、缓存、celery异步

    Django官方文档 django 使用 AJAX django 项目中也可以使用 ajax 技术 前端 前端和其他 web 框架一样,需要注意的是,django 接收 POST 请求时,需要 csr ...

  2. python装饰器类-PYTHON里的装饰器能装饰类吗

    扩展回答 如何理解python里的装饰器 通常可以理解它是一个hook 的回调函数. 或者是理解成python 留给二次开发的一个内置API. 一般是用回调和hook 方式实现的. 如何理解Pytho ...

  3. python里的class定义类为什么括号有object

    很多同学有疑问,为什么python里的class定义类括号有object 当我在python编辑器里输入object后,然后按住ctrl键+鼠标左键 即可查看object里的方法 class obje ...

  4. python drf_067.Python框架Django之DRF视图类

    一 关于视图类的一下概念 drf除了在数据序列化部分简写代码以外,还在视图中提供了简写操作.所以在django原有的django.views.View类基础上,drf封装了多个子类出来提供给我们使用. ...

  5. python的最大优势之一是有理数吗_Python里的有理数类(精度高,可计算)

    up主最近正在python里写一个库,名叫'better_math'下周将会做一个关于它的视频 这是一部分代码(本人小白,有bug请指正)(代码自取) class Rational: '''a rat ...

  6. Python里的dict和set的背后小秘密

    Python里的dict和set的效率有多高? 为什么它们是无序的? 为什么并不是所有的Python对象都可以当作dict的键或set里的元素? 为什么dict的键和set的元素的顺序是根据它们被添加 ...

  7. django类视图简单使用和源码解析

    django的类视图,CBV: 我们在开始接触django的时候,习惯于使用函数编写视图,即FBV.使用FBV时,我们只需要在路由匹配时,对应的路由下找到这个函数就可以了,这样做看似很和谐,但是有的时 ...

  8. Django类视图CBV扩展基类之通用显示视图ListView、DetailView

    前言 这几年一直在it行业里摸爬滚打,一路走来,不少总结了一些python行业里的高频面试,看到大部分初入行的新鲜血液,还在为各样的面试题答案或收录有各种困难问题 于是乎,我自己开发了一款面试宝典,希 ...

  9. Django框架之CBV类视图及类视图装饰器

    前言 这几年一直在it行业里摸爬滚打,一路走来,不少总结了一些python行业里的高频面试,看到大部分初入行的新鲜血液,还在为各样的面试题答案或收录有各种困难问题 于是乎,我自己开发了一款面试宝典,希 ...

最新文章

  1. python怎么重新启动内核_通过“ipython kernel”重新启动ipython内核
  2. Scrapy:python3下的第一次运行测试
  3. Openlayers中使用Image的rotation实现车辆定位导航带转角(判断车辆图片旋转角度)
  4. 基于HLS格式的低延时互动直播技术
  5. Java将五个整数存入整形数组_异常处理:从命令行输入5个整数,放入一整型数组,然后打印输出。。。...
  6. Set,List,Collection,Collections的区别?
  7. IOT(22)---NB-IoT、LoRa产业组织格局
  8. springBoot 集合深度拷贝
  9. ubuntu系统启动qtceator时提示:Qt5.5.1/Tools/QtCreator/lib/qtcreator/plugins/libHelp.so: 无法加载库...
  10. 概要设计的必要性及写法
  11. Windows10怎么改分辨率?Win10分辨率设置教程(最新)
  12. 51 个漂亮的电子商务网站设计分享
  13. android点赞功能源码,Android实现朋友圈点赞列表
  14. Excel-制作各国历年GDP动态图
  15. iphone相册储存空间已满_iPhone 总提示“iCloud储存空间将满”,如何解决?
  16. 管道软件_软件管道工的就业市场过热
  17. ROM、RAM、DRAM、SRAM、FLASH区别
  18. python爬取豆瓣电影top250_用Python爬取豆瓣电影TOP250分析
  19. 【C语言】比较两个数组中是否有相同的元素
  20. 介绍python中几种遍历列表的for循环方法

热门文章

  1. GPE监控预警系统-Prometheus 概述.md
  2. linetv_2020上半年泰国LINETV播放量最高的十部泰剧,你看了吗?
  3. 【人机对话】阿里云人工智能ET化身CEO,对话蜻蜓FM猫局长
  4. 特斯拉上海工厂预计5月份完工 今年底正式投产
  5. openstack镜像介绍
  6. 狼性百度凶狠反扑 神马有如此威胁?
  7. java nls_Java-使用JDBC的NLS_DATE_FORMAT
  8. 分治法解决棋盘覆盖问题
  9. 景华行政处罚“牛散”仁东控股一年巨亏27亿
  10. ctfshow--RCE极限挑战