7.用户信息模块
7.1内置User实现注册登录
Django内置了用户管理功能,即模型User,对应数据表auth_user,该表一共定义了11个字段,
7.2登录/注册的业务逻辑
【页面功能】页面主要是登录/注册表单,包含了两个文本框和一个登录/注册按钮。
【登录/注册逻辑】视图采用GET/POST方法获取提交的数据,
POST:首选判断两个文本框的数据格式有无错误,如不能为空、账号必须为手机号格式。然后判断账号是否已存在,不存在则自动注册账号,显示注册成功信息;存在则判断密码是否正确,正确则登录并重定向个人中心页面,不正确则不能登录。
【ModelForm】使用ModelForm提交表单:
》“lay-verify”:layui框架的功能,对文本框的数据进行限制,如required表示不能为空,phone表示必须为手机号格式。在模板中的JS进行配置即可显示错误信息。
》Form和ModelForm的参数还有很多,具体参考书。
【视图函数】
与之前学的一样:GET直接提交组件,POST将数据传入组件,然后进行数据验证。
login、logout、authenticate均是内置模块,实现登录、退出登录和记录账号信息。
7.3登录/注册页面数据渲染
与之前类似,直接引用输入框即可
JS实现layui功能,即显示ModeForm中定义的错误信息:
7.4登录/注册效果
7.5个人中心页面
【业务逻辑】个人中心页面包括两个板块:左边是用户基本信息,显示用户头像、手机号和最后登录时间,同时实现查看购物车和退出登录功能;右边显示该用户所有所有订单的信息。
由于只有用户登录了才能查看个人中心,因此在个人中心视图前加个装饰器,判断用户是否登录,未登录时自动跳转至登录页面。
【视图函数】
①装饰器判断用户是否登录;
②p获取当前页数,实现分页功能;
③orderInfos获取当前用户的订单信息;
④处理已支付订单与购物车页面相应,日后再讲。
【模板显示】
html比较简单,都是直接显示数据即可。购物车和退出登录跳转至各自路由即可。
JS导入laypage,实现分页功能
【退出登录】
直接使用内置模块logout实现退出登录,然后重定向至商城首页: