使用Ajax和forms组件怎么实现注册功能
这期内容当中小编将会给大家带来有关使用Ajax和forms组件怎么实现注册功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

站在用户的角度思考问题,与客户深入沟通,找到潞州网站设计与潞州网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站制作、外贸网站建设、企业官网、英文网站、手机端网站、网站推广、域名注册、网页空间、企业邮箱。业务覆盖潞州地区。
前端HTML
{% load static %}
{% get_static_prefix as getstatic %}
注册页面
注册新用户
上面的代码只是HTML ,而JavaScript在下面实例中
FileReader
FileReader主要用于将文件内容读入内存,通过一系列异步接口,可以在主线程中访问本地文件。
使用FileReader对象,web应用程序可以异步的读取存储在用户计算机上的文件(或者原始数据缓冲)内容,可以使用File对象或者Blob对象来指定所要处理的文件或数据。
设计RegisterForm组件
from django import forms
from . import models
from django.forms import widgets
from django.core.exceptions import NON_FIELD_ERRORS, ValidationError
class RegisterForm(forms.Form):
nik_name = forms.CharField(max_length=32,
widget=widgets.TextInput(attrs={"class":"form-control"}),
error_messages={"required":"用户不能为空"})
email = forms.EmailField(widget=widgets.EmailInput(attrs={"class":"form-control"}),
error_messages={"required":"邮箱不能为空", "invalid":"邮箱格式错误"})
password = forms.CharField(min_length=5, widget=widgets.PasswordInput(attrs={"class":"form-control"}),
error_messages={"required": "密码不能为空",
"min_length":"最小长度5位",
}
)
repeta_pwd = forms.CharField(widget=widgets.PasswordInput(attrs={"class":"form-control"}),
error_messages={"required": "密码不能为空"})
def clean_nik_name(self):
name = self.cleaned_data.get("nik_name")
users = models.UserInfo.objects.filter(nik_name=name)
if not users:
return name
else:
raise ValidationError("用户已存在")
def clean(self): //全局钩子
pwd = self.cleaned_data.get("password")
repeta_pwd = self.cleaned_data.get("repeta_pwd")
if pwd and repeta_pwd:
if pwd == repeta_pwd:
return self.cleaned_data
else:
raise ValidationError("两次密码不一致")
else:
return self.cleaned_datadef post(self,request):
reg_response = {"user": None,"error_msg":""}
register_form = RegisterForm(request.POST)
if register_form.is_valid():
email = request.POST.get("email")
nik_name = request.POST.get("nik_name")
password = request.POST.get("password")
repeta_pwd = request.POST.get("repeta_pwd")
valid = request.FILES.get("valid_img") #注意这里使用的request.FILES.get("")
if not valid:
valid = "avatardir/TIM图片20171209211626.gif"
check_user = models.UserInfo.objects.create_user(username=nik_name,nik_name=nik_name, email=email,
password=password,
avatar=valid
) # 注意这里保存导数据库中的是图片路径,并不是图片
reg_response = {"user": "user", "error_msg": ""}
return HttpResponse(json.dumps(reg_response))
else:
reg_response["error_msg"]=register_form.errors
return HttpResponse(json.dumps(reg_response))Model中 Userifor 的img
avatar = models.FileField(upload_to='avatar/', default="/avatar/default.gif", verbose_name="主键")
注意:
upload_to :默认把文件夹创建至根目录下,如创建至指定位置,需要在setting中配置media。
如:希望用户上传的文件单独存储,在setting中配置,
MEDIA_ROOT= os.path.jion(BASE_DIR,"blog","media") //此时,用户上传文件时,先创建并将文件保存至“putImg”文件夹中,“putImg”,然后将“putImg”放至对应的路径中。 # media 配置 url(r"^media/(?P.*)",sever,{"document_root":setting.MEDIA_ROOT})
配置好上面的url 后,用户可以访media 文件夹下面的所有文件
注意:
server ,是从django.views.static import server导入 from . import settings //url中的使用
什么是ajax
ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术,可以通过在后台与服务器进行少量数据交换,使网页实现异步更新。
上述就是小编为大家分享的使用Ajax和forms组件怎么实现注册功能了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。
文章名称:使用Ajax和forms组件怎么实现注册功能
网页地址:http://jxruijie.cn/article/giosod.html
