记录第一个小项目,基于django的登录注册页面

教程来源:http://zmrenwu.com

项目是基于django自带的auth模块来认证的,查看AbstractUser模块源码,发现有username,firestname,last 和email,不够用,所以我们继承这个类,

加上一个nickname属性

设置完默认使用的模块后,还要进行数据库迁移

$ python manage.py makemigrations
$ python manage.py migrate

以上两条命令是django1.10版以上的。

一直很纠结上面两条数据库迁移命令。今天把默认的sqlite改为了mysql,更改settings文件后,使用两条命令就可以完成迁移了。而models里面的数据类型会在迁移完成后自动在数据库创建相应数据类型,所以不用操心。


理一下开发顺序: 首先我们需要注册的表单页面上的内容是 用户名+密码+确认密码+邮箱  而查看了django.contrib.auth.forms.UserCreationForm 自带的表单属性,发现里面只有 密码+确认密码 所以我们需要在user1底下创建一个forms.py文件来使原有继承auth.User变为继承user1.User,怎么实现呢?我们上一步已经把Uer模型扩展了,并且查看到里面有这几个field,所以通过from.modelsimportUser 就使得现在的表单变为继承user1.User的属性。接下来编写views视图逻辑,添加url,写html就好了。

一些使用pycharm的快捷键  shift+enter 从下一行重新开始,ctr + b 找到上一层代码    ctr+f 搜索,全部替换    超级好用



发送邮件的时候首先遇到

django.core.exceptions.ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

需要配置环境变量  DJANGO_SETTINGS_MODULE  这个变量告诉django项目去找哪一个settings 文件。  具体的步骤:

1、Run  -->  EditConfigures ,找到python一项,然后修改里面的Environment variables 添加一项。名称是DJANGO_SETTINGS_MODULE  值是  你的项目是mysite就改成 mysite.settings 。

然后通过SMTP协议发送邮件失败,报错505或535

解决方法:http://blog.csdn.net/fjx1173865548/article/details/57084620

注意sender参数才是填的刚刚注册的邮箱。!

但是我还没有把他加到我的密码验证里,待研究。。

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

以下是解决办法:

settings设置

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_USE_SSL = False                               #SSl关闭
EMAIL_HOST = 'smtp.qq.com'
EMAIL_PORT = 25
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = '*******'            #在qq邮箱里获取
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER                 #默认发送地址一定要填

这样就能收到邮件啦

你可能感兴趣的:(django)