我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

使用Ajax和forms组件怎么实现注册功能-创新互联

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

创新互联专注于徐州网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供徐州营销型网站建设,徐州网站制作、徐州网页设计、徐州网站官网定制、小程序开发服务,打造徐州网络公司原创品牌,更为您提供徐州网站排名全网营销落地服务。

前端HTML


{% load static %}
{% get_static_prefix as getstatic %}


  
  
  
  
  注册页面
  



  
    
    
      
    
                         
  • 首页
  •         
  • 登录
  •         
  • 注册
  •         
  • 帮助
  •            
      
                       注册新用户                                                                               头像                                                                  邮       箱                                   {{ register_form.email }}                                                                  昵称                                   {{ register_form.nik_name }}                                                                  密       码                                   {{ register_form.password }}                                                                  确认密码                                   {{ register_form.repeta_pwd }}                                                                                                                                         * “注册” 按钮,即表示您同意并愿意遵守 用户协议。                           {% csrf_token %}                                  
                                    

    上面的代码只是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_data

    服务器

    def 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://mswzjz.cn/article/dscsoj.html