python-django框架-电商项目-用户模块开发ing_20191117

实现注册的基本逻辑:

1,注册页面,

注意:注册页面需要静态文件的支持,另外注册页面是基础基类的,

  1,url,路由系统,

  2,views,视图系统,还是使用类视图,里面有很多的函数,

    get函数,得到注册页面,

    post函数,处理四个事情:#web开发的通用的一个流程就是这样的,

        1,接收数据

        2,进行数据校验:用户已存在的时候要做异常处理,注册失败的时候要做异常处理,

        3,进行业务处理,进行用户注册,创建一条用户记录,可以使用django的认证系统,提供了一个创建用户的方法,

            user = User.objects.create_user(username, email, password)

            发送激活邮件,包含激活链接,每一个人的都应该是不一样的,包含用户的身份信息,如何设计??:127.0.0.1:8000/user/active/1(id)

            这样发了这个邮件,我就可以获取到最后的id,我收到了邮件,就知道你在激活,我就可以去修改数据库了,

            但是有些人会捣乱,不停的修改id去访问,所以怎么办?就要id加密

            怎么加密?引入一个包:from itsdangerous import TimedJSONWebSignatureSerializer as Serializer

            除了加密之外,还可以设置过期时间,时间过了连接失效,就不能激活了,

            过期了之后,实际应该返回一个页面,然后点击一个地方,可以再发一个激活连接,

            发送邮件需要配置,注意,

            加密是在注册的函数,解密的时候是一个单独的函数,解密函数,

            发邮件的流程需要优化,因为这是一个阻塞型的,因为邮件没发完就要等待,用户体验不好,怎么解决?

            异步执行任务,python中有一个celery的包,可以执行异步的执行任务,比如发送邮件,上传文件,下载文件,这种耗时的操作都可以使用celery

        4,返回应答,使用反向解析返回首页,valid:有效的  pattern:模式

   类视图的原理:所以有时间的话,还是应该阅读以下源码的,但是现在不是时候,

    反向解析url的问题,也需要看看,这个比较紧迫,

    人的记忆是有限的,程序员的记忆也就是3万行代码,所以有一些固定的东西,拿来就用的东西,不要去记,要去记那些核心的东西,

---------------------------------------

celery的介绍

有三个核心的概念:

任务的发出者(需要发邮件的一方),中间是一个任务队列(中间人broker),任务的处理者(就是帮助发邮件的这就是worker),

首先任务发出者,发出任务之后,不能直接告诉任务的处理者,要先到任务队列,

任务的处理者会监听任务队列,有的话就执行,

celery本身是没有提供任务队列的功能的,需要借助一个rabbitMQ数据库,或者Redis,都是可以作为中间人的,这里我们使用Redis来承担任务队列的作用,

这样的设计就不会阻塞了,

安装celery,pip install celery

安装redis:pip install redis  验证redis是否安装成功,在cmd窗口输入python命令之后再输入import redis,如果没有出现模块不存在则表示安装成功。

安装之后怎么使用呢?

VMware和Ubuntu的安装,

想来想去,还是需要安装,不能老是使用Windows的,后面还有很多都要用到Linux系统的,这个可以说是开发人员必备的了,

#########################################################################

猜你喜欢

转载自www.cnblogs.com/andy0816/p/11877842.html
今日推荐