国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python通過Django實現用戶注冊和郵箱驗證功能代碼

2020-02-16 11:02:29
字體:
來源:轉載
供稿:網友

本文主要向大家分享了Python編程中通過Django模塊實現用戶注冊以及郵箱驗證功能的簡單介紹及代碼實現,具體如下。

用戶注冊:

類似于用戶登陸,同樣在users.views.py中添加RegisterView(View)類,其中對表單的get和post作出處理。
如果是get方法,重新返回register頁面讓用戶進行填寫。

 def get(self, request):  register_form = RegisterForm()  return render(request, "register.html", {'register_form':register_form})

method = POST時,用戶注冊邏輯:

 def post(self, request):  # 實例化form,驗證每個字段是否合法  register_form = RegisterForm(request.POST)  pre_check = register_form.is_valid()  if pre_check:   # 取出email和password   user_name = request.POST.get("email", "")   pass_word = request.POST.get("password", "")   # 實例化用戶,然后賦值   user_profile = UserProfile()   user_profile.username = user_name   user_profile.email = user_name   # 新建用戶為非活躍用戶,可通過驗證變為活躍用戶   user_profile.is_active = False   # 將明文轉換為密文賦給password   user_profile.password = make_password(pass_word)   user_profile.save() # 保存到數據庫   # 此處加入了郵箱驗證的手段   send_register_email(user_name, "register")   return render(request, "login.html")  else:   # form表單驗證失敗,將錯誤信息傳給前端   return render(request, "register.html", {"register_form": register_form})

在form.py中添加RegisterForm類對給出表單處理類:

class RegisterForm(forms.Form): # 不能為空 email = forms.EmailField(required=True) password = forms.CharField(required=True, min_length=6, max_length=20) # 出錯信息 captcha = CaptchaField(error_messages={"invalid":u"驗證碼錯誤"})

以下為對應的前端代碼,其中添加了了django的模版用法,均以{% %}的形式在html中加入邏輯, 避免了python代碼的直接插入,方便維護和修改。

<form id="email_register_form" method="post" action="{% url 'register' %}" autocomplete="off">      <div class="form-group marb20 {% if register_form.errors.email %}errorput{% endif %}">       <label>郵     箱</label>       <input type="text" id="id_email" name="email" value="{{ register_form.email.value }}" placeholder="請輸入您的郵箱地址" />      </div>      <div class="form-group marb8 {% if register_form.errors.password %}errorput{% endif %}">       <label>密     碼</label>       <input type="password" id="id_password" name="password" value="{{ register_form.password.value }}" placeholder="請輸入6-20位非中文字符密碼" />      </div>      <div class="form-group marb8 captcha1 {% if register_form.errors.captcha %}errorput{% endif %}">       <label>驗 證 碼</label>       {{ register_form.captcha }}      </div>      <div class="error btns" id="jsEmailTips">{% for key,error in register_form.errors.items %}{{ error }}{% endfor %} {{ msg }}</div>      <div class="auto-box marb8">      </div>      <input class="btn btn-green" id="jsEmailRegBtn" type="submit" value="注冊并登錄" />      {% csrf_token %}     </form>            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 太湖县| 新闻| 通化市| 黄石市| 高陵县| 察哈| 黄山市| 蕲春县| 枣强县| 巨野县| 武胜县| 天镇县| 刚察县| 阳山县| 南溪县| 富裕县| 太仓市| 比如县| 陆良县| 沧州市| 镇康县| 昭苏县| 临海市| 大化| 和硕县| 渑池县| 揭阳市| 大埔县| 城固县| 梅河口市| 姚安县| 如东县| 梁河县| 大田县| 界首市| 柞水县| 共和县| 天全县| 天全县| 桂阳县| 博乐市|