dj鲜生-13-类视图-使用篇
视图函数也可以以类的形态呈现
》视图函数VS视图类
视图类的说明
》路由的写法
把注册视图函数转变为类视图
1,导入视图类
from django.views.generic import View
2,定义视图类
它需要继承前面导入的View类
格式如下:
# 类视图
class RegisterView(View):"""注册"""def get(self, request):"""get请求执行"""passdef post(self, request):"""post请求执行"""pass
3 路由的对应
路由的对应要换种写法了
格式为
path(路径,视图类.as_view())
例如本例中:
path('register/', views.RegisterView.as_view(), name='register'), # 后台管理
视图类的对应写法
paht(路径,views.视图类.as_view()
》按照这三步操作,类视图就可以工作了
往get方法中填入代码
》把原来的get分支中的代码转一下
转移后
往post方法中添加代码
同理,把原视图post分支中的代码弄过来
拿这些代码
转移后的代码
注册测试
发现一切正常
》注册类的代码
class RegisterView(View):"""注册"""def get(self, request):"""get请求执行"""print('view,get')return render(request, "register.html")def post(self, request):"""post请求执行"""print('view,post')user_name = request.POST.get("user_name")password = request.POST.get("pwd")email = request.POST.get("email")allow = request.POST.get("allow")# 数据校验print('user_name', user_name)print('password', password)print('email', email)# 校验:是否有空数据if not all([user_name, password, email]):print('有不合法的数据空数据进来了')return render(request, "register.html",{"errmsg": "数据不完整"})# 校验:邮箱格式is_mail = re.match(r'^[a-z0-9][\w.\-]*@[a-z0-9\-]+(\.[a-z]{2,5}){1,2}$', email)print('ismail', is_mail)if not is_mail:print('不是邮箱')return render(request, "register.html",{"errmsg": "邮箱格式不正确"})# 校验:是否有勾选协议if allow != "on":print('得同意协议')return render(request, "register.html",{"errmsg": "请同意协议"})# 用户重名的验证 todo 临时有事,回来再补try:user = User.objects.get(username=user_name)print('用户查询结果', user)except User.DoesNotExist:user = Noneprint('查到重名的')if user:print('用户名已经存在')return render(request, "register.html",{"errmsg": "用户名已经存在请更换用户名"})# 进行业务处理,即,进行用户注册user = User.objects.create_user(user_name, email, password)print('user', user)# 生成要跳转的页面from django.urls import reversejump_url = reverse("goods:index")# 返回响应return redirect(jump_url)
小结
类视图的使用
三个步骤
- 导入View类
- 在views.py中自定义一个类,继承View类
- 路由对应那里,通过
视图类.av_view()
来与路径产生对应
dj鲜生-13-类视图-使用篇相关推荐
- dj鲜生14-类视图的实现原理+代码
截至当前的代码: https://cloud.189.cn/t/ZbERBjq6fmeu (1909221746) 路由系统的路径对应 路由的路径规则,一般是会与一个视图函数对应的 然而在使用类视图时 ...
- dj鲜生-10200818-商品首页展示-静态页下载资源
静态页资源下载 https://cloud.189.cn/t/fqq6Vr36nIf2 (鲜生电商-静态页面) 商品首页模板处理 index.html页首理 生鲜首页的抽取过程,详解 - 知乎 htt ...
- dj鲜生-38-项目上线简介-从本地小项目到云服务的调试
小结 项目上线要做的事情有: 代码传到linux虚拟机上 准备相关的运环境 配置好ip与端口 让程序跑起来 项目上线,就是把windows上的代码,拷备到linux上,让代码跑起来 在win上跑代码的 ...
- dj鲜生-01-新建项目-配置数据库
静态页面地址 静态文件资源下载: https://cloud.189.cn/t/U7vAjafAfAVb (鲜生电商-静态页面) 创建一个项目 pycharm打开项目 数据库的准备 新建一个数据库 & ...
- dj鲜生-28-登陆验证父类的使用-Mixin类的定义
操作小结 创建一个目录和一个文件 文件中写一个登陆验证的mixin类 from django.contrib.auth.decorators import login_required class L ...
- dj鲜生-37-order应用-模型类创建
主要两张表 进入到订单应用 初始也是空的 订单模型类 一个注意点 如果我的字段,要关联另一个应用的模型类,见框框 应用名.模型类名 用这种方式来跨应用关联 订单商品模型类 class OrderGoo ...
- dj鲜生-36-商品应用-其它模型类的创建-完善goods应用的数据表
用户模块处理的差不多了 准备商品模块 总共七张表,要做模型类 原始models 就是一个空的 开始弄进去代码 开始打代码 商品模型类的定义 from django.db import models f ...
- dj鲜生-11-优化url-合并视图函数
目标: register_handle去掉 与register合并在一个视图函数中 分支逻辑 如果,是get请求,表求在请求得到一个页面的信息 如果是post请求,就表示是在提交数据 >做法 代 ...
- dj鲜生-03-用户模块的创建与模型类的创建
用户模块创建,app user (base) G:\dailyfresh>python manage.py startapp user 用户应用的注册 在配置中添加应用的名称即可 回顾要设计的模 ...
最新文章
- java 扫描包框架_在Android中实现类似Spring的软件包扫描
- Ambient occlusion
- solidworks钣金插件_高效掌握SolidWorks钣金零件加工设计概念
- Swift基础之闭包
- 比特币的区块结构解析
- pytorch注意事项
- double类型最大值_Java后端精选基础教程:Java 中的基本数据类型「连载 6」
- spring-boot基础知识
- c语言的关键字怎么编辑,C语言的关键字
- 教你怎么用爬虫程序采集企业信息及电话邮箱等信息(以企查查为例)
- 4G标准LTE FDD与LTE TDD的不同
- 续上篇文章中的stmt使用方法。
- 【转】SAP 各种记账凭证的更改冲销
- 开汉庭酒店需要什么条件?
- linux版印象笔记 for deepin
- 【干货】PCB线宽与电流关系
- solr整合paoding分词注意的一些细节
- 比较两种计算机语言的英语论文,英语计算机论文大纲模板样本 英语计算机论文提纲怎样写...
- 认沽期权是什么意思:认沽期权怎么交易
- 南非醉茄来源的天然产物之活性大盘点
热门文章
- u盘被保护怎样解除?(第十招)
- HTML极客自适应网址导航模板,更换背景+看板娘
- 大气自适应会员中心帝国cms模板
- YzmCMS全新轻爽极简风格模版主题
- python图例重复显示_matplotlib中的图例中有重复项?
- HTML二刺螈网址导航模板
- 小程序博客资源娱乐网带微信流量主激励视频
- 无法在WEB服务器上启动调试,Web 服务器配置不正确 解决
- 做一个项目,平时都用到哪些工具提高效率(上)[转]
- 使用 jQuery Mobile 与 HTML5 开发 Web App (十二) —— jQuery Mobile 页面事件与 deferred