真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

使用Ajax和forms組件怎么實現(xiàn)注冊功能-創(chuàng)新互聯(lián)

這期內容當中小編將會給大家?guī)碛嘘P使用Ajax和forms組件怎么實現(xiàn)注冊功能,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)專注于徐州網站建設服務及定制,我們擁有豐富的企業(yè)做網站經驗。 熱誠為您提供徐州營銷型網站建設,徐州網站制作、徐州網頁設計、徐州網站官網定制、小程序開發(fā)服務,打造徐州網絡公司原創(chuàng)品牌,更為您提供徐州網站排名全網營銷落地服務。

前端HTML


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


  
  
  
  
  注冊頁面
  



  
    
    
      
    
                         
  • 首頁
  •         
  • 登錄
  •         
  • 注冊
  •         
  • 幫助
  •            
      
                       注冊新用戶                                                                               頭像                                                                  郵       箱                                   {{ register_form.email }}                                                                  昵稱                                   {{ register_form.nik_name }}                                                                  密       碼                                   {{ register_form.password }}                                                                  確認密碼                                   {{ register_form.repeta_pwd }}                                                                                                                                         * “注冊” 按鈕,即表示您同意并愿意遵守 用戶協(xié)議。                           {% csrf_token %}                                  
                                    

    上面的代碼只是HTML ,而JavaScript在下面實例中

    FileReader

    FileReader主要用于將文件內容讀入內存,通過一系列異步接口,可以在主線程中訪問本地文件。

    使用FileReader對象,web應用程序可以異步的讀取存儲在用戶計算機上的文件(或者原始數(shù)據(jù)緩沖)內容,可以使用File對象或者Blob對象來指定所要處理的文件或數(shù)據(jù)。

    設計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
                                  ) # 注意這里保存導數(shù)據(jù)庫中的是圖片路徑,并不是圖片
          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 :默認把文件夾創(chuàng)建至根目錄下,如創(chuàng)建至指定位置,需要在setting中配置media。

         如:希望用戶上傳的文件單獨存儲,在setting中配置,

    MEDIA_ROOT= os.path.jion(BASE_DIR,"blog","media")
    //此時,用戶上傳文件時,先創(chuàng)建并將文件保存至“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是一種在無需重新加載整個網頁的情況下,能夠更新部分網頁的技術,可以通過在后臺與服務器進行少量數(shù)據(jù)交換,使網頁實現(xiàn)異步更新。

    上述就是小編為大家分享的使用Ajax和forms組件怎么實現(xiàn)注冊功能了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


    分享文章:使用Ajax和forms組件怎么實現(xiàn)注冊功能-創(chuàng)新互聯(lián)
    文章地址:http://weahome.cn/article/dscsoj.html

    在線咨詢

    微信咨詢

    電話咨詢

    028-86922220(工作日)

    18980820575(7×24)

    提交需求

    返回頂部