网站建设有哪三部,做网站要源码吗,用户界面设计案例,wordpress 插件广告美多商城完整教程#xff08;附代码资料#xff09;主要内容讲述#xff1a;欢迎来到美多商城#xff01;#xff0c;项目准备。展示用户注册页面#xff0c;创建用户模块子应用。用户注册业务实现#xff0c;用户注册前端逻辑。图形验证码#xff0c;图形验证码接口设…
美多商城完整教程附代码资料主要内容讲述欢迎来到美多商城项目准备。展示用户注册页面创建用户模块子应用。用户注册业务实现用户注册前端逻辑。图形验证码图形验证码接口设计和定义。短信验证码避免频繁发送短信验证码。账号登录用户名登录。登录登录开发文档。用户基本信息查询并渲染用户基本信息。收货地址省市区三级联动。收货地址展示地址前后端逻辑。商品数据库表设计SPU和SKU。准备商品数据容器化方案Docker。首页广告展示首页商品频道分类。商品列表页列表页面包屑导航。商品搜索Haystack扩展建立索引。商品详情页统计分类商品访问量。购物车管理添加购物车。购物车管理删除购物车。订单结算订单。提交订单使用乐观锁并发下单。对接系统订单支付功能。页面静态化首页广告页面静态化。MySQL读写分离MySQL主从同步。。部署。meiduo_mallBuild Setup。Summary。
全套笔记资料代码移步 前往gitee仓库查看
感兴趣的小伙伴可以自取哦欢迎大家点赞转发~ 全套教程部分目录 部分文件图片 展示用户注册页面
创建用户模块子应用
1. 创建用户模块子应用 1.准备apps包用于管理所有应用 2.在apps包下创建应用users bash $ cd ~/projects/meiduo_project/meiduo_mall/meiduo_mall/apps $ python ../../manage.py startapp users 2. 查看项目导包路径 重要提示 若要知道如何导入users应用并完成注册需要知道项目导包路径 已知导包路径 meiduo_project/meiduo_mall
已知 users应用所在目录
meiduo_project/meiduo_mall/meiduo_mall/apps/users
得到导入users应用的导包路径是meiduo_mall/apps/users
3. 注册用户模块子应用
python INSTALLED_APPS [ django.contrib.admin, django.contrib.auth, django.contrib.contenttypes, django.contrib.sessions, django.contrib.messages, django.contrib.staticfiles,
meiduo_mall.apps.users, # 用户模块应用] 注册完users应用后运行测试程序。 追加导包路径 思考 是否可以将注册users应用做的更加简便按照如下形式直接以应用名users注册
python INSTALLED_APPS [ django.contrib.admin, django.contrib.auth, django.contrib.contenttypes, django.contrib.sessions, django.contrib.messages, django.contrib.staticfiles,
users, # 用户模块应用] 分析 已知导包路径 meiduo_project/meiduo_mall 已知users应用所在目录 meiduo_project/meiduo_mall/meiduo_mall/apps/users 若要直接以应用名users注册 需要一个导包路径meiduo_project/meiduo_mall/meiduo_mall/apps
解决办法
python * 追加导包路径meiduo_project/meiduo_mall/meiduo_mall/apps
1. 追加导包路径 1.查看项目BASE_DIR 2.追加导包路径 2. 重新注册用户模块应用
python INSTALLED_APPS [ django.contrib.admin, django.contrib.auth, django.contrib.contenttypes, django.contrib.sessions, django.contrib.messages, django.contrib.staticfiles,
users, # 用户模块应用] 重新注册完users应用后运行测试程序。 3. 知识要点 查看导包路径 通过查看导包路径可以快速的知道项目中各个包该如何的导入。 特别是接手老项目时可以尽快的适应项目导包的方式。 追加导包路径 通过追加导包路径可以简化某些目录复杂的导包方式。
展示用户注册页面
1. 准备用户注册模板文件 加载页面静态文件 html head meta http-equivContent-Type contenttext/html;charsetUTF-8 title美多商城-注册/title link relstylesheet typetext/css href{{ static(css/reset.css) }} link relstylesheet typetext/css href{{ static(css/main.css) }} /head
2. 定义用户注册视图
python class RegisterView(View): 用户注册
def get(self, request):提供注册界面:param request: 请求对象:return: 注册界面return render(request, register.html)3. 定义用户注册路由 1.总路由 python urlpatterns [ # users url(r^, include(users.urls, namespaceusers)), ] 2.子路由 python urlpatterns [ # 注册 url(r^register/$, views.RegisterView.as_view(), nameregister), ]
用户模型类
定义用户模型类
1. Django默认用户认证系统 Django自带用户认证系统 它处理用户账号、组、权限以及基于cookie的用户会话。 Django认证系统位置 django.contrib.auth包含认证框架的核心和默认的模型。 django.contrib.contenttypes是Django内容类型系统它允许权限与你创建的模型关联。 Django认证系统同时处理认证和授权 认证验证一个用户是否它声称的那个人可用于账号登录。 授权授权决定一个通过了认证的用户被允许做什么。 Django认证系统包含的内容 用户用户模型类、用户认证。 权限标识一个用户是否可以做一个特定的任务MIS系统常用到。组对多个具有相同权限的用户进行统一管理MIS系统常用到。密码一个可配置的密码哈希系统设置密码、密码校验。
2. Django默认用户模型类 Django认证系统中提供了用户模型类User保存用户的数据。 User对象是认证系统的核心。 Django认证系统用户模型类位置 django.contrib.auth.models.User 父类AbstractUser介绍 User对象基本属性 创建用户(注册用户)必选 username、password创建用户(注册用户)可选email、first_name、last_name、last_login、date_joined、is_active 、is_staff、is_superuse判断用户是否通过认证(是否登录)is_authenticated 创建用户(注册用户)的方法 python user User.objects.create_user(username, email, password, **extra_fields) 用户认证(用户登录)的方法 python from django.contrib.auth import authenticate user authenticate(usernameusername, passwordpassword, **kwargs) 处理密码的方法 设置密码set_password(raw_password)校验密码check_password(raw_password)
3. 自定义用户模型类 思考为什么要自定义用户模型类 观察注册界面会发现美多商城注册数据中必选用户mobile信息。但是Django默认用户模型类中没有mobile字段所以要自定义用户模型类。
如何自定义用户模型类
继承自AbstractUser可通过阅读Django默认用户模型类的源码得知 。新增mobile字段。
python from django.db import models from django.contrib.auth.models import AbstractUser
Create your models here.
class User(AbstractUser): 自定义用户模型类 mobile models.CharField(max_length11, uniqueTrue, verbose_name手机号)
class Meta:db_table tb_usersverbose_name 用户verbose_name_plural verbose_namedef __str__(self):return self.username4. 知识要点
Django自带用户认证系统核心就是User对象并封装了一系列可用的方法和属性。Django用户认证系统包含了一系列对用户的操作比如模型类认证权限分组密码处理等。Django用户认证系统中的用户模型类可以自定义继承自AbstractUser。[Django用户认证系统说明文档](
迁移用户模型类
1. 指定用户模型类 思考为什么Django默认用户模型类是User 阅读源代码django.conf.global_settings python AUTH_USER_MODEL auth.User
结论
Django用户模型类是通过全局配置项 AUTH_USER_MODEL 决定的
配置规则
python AUTH_USER_MODEL 应用名.模型类名
python
指定本项目用户模型类
AUTH_USER_MODEL users.User
2. 迁移用户模型类 1.创建迁移文件 python manage.py makemigrations 2.执行迁移文件 python manage.py migrate 3. 知识要点
用户认证系统中的用户模型类是通过全局配置项 AUTH_USER_MODEL 决定的。如果迁移自定义用户模型类必须先配置 AUTH_USER_MODEL 。
用户注册业务实现
用户注册业务逻辑分析
1. 用户注册业务逻辑分析 用户注册接口设计和定义
1. 设计接口基本思路
对于接口的设计我们要根据具体的业务逻辑设计出适合业务逻辑的接口。 设计接口的思路 分析要实现的业务逻辑 明确在这个业务中涉及到几个相关子业务。将每个子业务当做一个接口来设计。 分析接口的功能任务明确接口的访问方式与返回数据 请求方法如GET、POST、PUT、DELETE等。请求地址。请求参数如路径参数、查询字符串、表单、JSON等。响应数据如HTML、JSON等。
2. 用户注册接口设计 1.请求方式 |选项|方案| |---|---| |请求方法|POST| |请求地址|/register/| 2.请求参数表单参数 |参数名|类型|是否必传|说明| |---|---|---|---| |username|string|是|用户名| |password|string|是|密码| |password2|string|是|确认密码| |mobile|string|是|手机号| |sms_code|string|是|短信验证码| |allow|string|是|是否同意用户协议| 3.响应结果HTML register.html
|响应结果|响应内容| |---|---| |注册失败|响应错误提示| |注册成功|重定向到首页|
3. 用户注册接口定义 1.注册视图 python class RegisterView(View): 用户注册
def get(self, request):提供注册界面:param request: 请求对象:return: 注册界面return render(request, register.html)def post(self, request):实现用户注册:param request: 请求对象:return: 注册结果pass2.总路由 python urlpatterns [ # users url(r^, include(users.urls, namespaceusers)), ] 3.子路由 python urlpatterns [ # 注册 url(r^register/$, views.RegisterView.as_view(), nameregister), ]
未完待续 同学们请等待下一期
全套笔记资料代码移步 前往gitee仓库查看
感兴趣的小伙伴可以自取哦欢迎大家点赞转发~