用户注册并向163邮箱发送邮件(两种方式:同步和异步,ubuntu和windows上的不同)
************** 三.用户注册功能的实现* ******************
在总项目下新建static/css,images,js,在总项目下新建templates
注册页面出现样式
1将注册页面的html文件放到templates
2.为注册页面写一个View
from django.shortcuts import render
def register(request):
return render(request,"register.html")
3.为这个View配置一个一级路由
在总项目的users下:url(r'^user/', include("user.urls",namespace="user")), #用户模块
4.写二级路由:
from django.conf.urls import url
from user import views
url(r'^register$', views.register,name="register"), #注册
5.让程序运行起来,通过浏览器进行访问127.0.0.1:8000/user/register进行访问
6.修改静态资源的路径
在register.html中的
标签上面一行写{% load staticfiles %} {#修改静态资源的路径#}
然后将register.html中的css,images,js文件以这种方式来修改href="{% static 'css/reset.css' %}"
=====================================================================
1.将register.html中的表单form进行如下修改
下面一行这样写{{ errmsg }}
再次进行注册测试,注册不合法的原因会出现在注册下面
在user/views中要写验证用户名是否重复的代码,可以使用get()方法,它只能返回满足条件的一条记录,且只能有一条的记录,如果查询不到它会报一个异常,所以我们需要try:
try:
user = User.objects.get(username = username)
except User.DoesNotExist:
user = None
if user:
return render(request,"register.html",{"errmsg":"用户名已经存在"})
user = User.objects.create_user(username, email, password)
==============================================================
==============================================================
上面的方法需要两个url地址才能完成注册,下面这种方法是将显示注册页面和注册处理使用同一个url地址
----------------(注册使用的是get请求,注册处理使用的是post请求)
1.将register.html中的form进行修改