前端html
class="前端jqueryagile-row
">
class="
login-agileits-top
">
class=row>
$(document).ready(function () ;後台路由$.each(data[
'info
'], function (key, value) );
} else
if (data.status == 1) ";
});}
else
}, 'json');
});});
#寫鉤子驗證:專案目錄下建立my_forms.py檔案註冊path('
regist/
', login.regist,name='
regist
'),
from django import forms #後台方法自動驗證 # forms元件
from django.forms import
widgets
from django.core.exceptions import
validationerror
from django.core.validators import
regexvalidator
from blog.models import
member
class
userform(forms.form):
wid_01 = widgets.textinput(attrs=)#
wid_02 = widgets.passwordinput(attrs=)#
member_name=forms.charfield(max_length=60,min_length=4,label="
使用者名稱",widget=wid_01,error_messages=)
member_nickname = forms.charfield(max_length=60, min_length=2, label="
顯示名稱
", widget=wid_01,
error_messages=)
member_pwd=forms.charfield(max_length=30,min_length=8,label="
密碼",widget=wid_02,validators=[regexvalidator('
\d+','
只能是數字
') ],error_messages=)
r_pwd=forms.charfield(max_length=30,min_length=8,label="
確認密碼
",widget=wid_02,validators=[regexvalidator('
\d+','
只能是數字
') ],error_messages=) #
/(?=.*[a-z])(?=.*\d)(?=.*[#@!~%^&*])[a-z\d#@!~%^&*]/i
member_email = forms.emailfield(label="
郵箱",widget=wid_01,error_messages=)
member_tel = forms.charfield(max_length=11, widget=wid_01,label="
**號碼",)
#區域性鉤子
defclean_member_name(self):
val = self.cleaned_data.get("
member_name")
res = member.objects.filter(member_name=val)
ifnot
res:
return
val
else
:
raise validationerror("
使用者名稱已存在!")
#全域性鉤子
defclean(self):
member_pwd=self.cleaned_data.get("
member_pwd")
r_pwd=self.cleaned_data.get("
r_pwd")
if member_pwd and
r_pwd:
if member_pwd==r_pwd:
#print(self.cleaned_data)
return
self.cleaned_data
else
:
raise validationerror('
兩次密碼不一致!')
else
:
return self.cleaned_data
from blog.my_forms import *頁面效果#註冊頁
把這個結果告訴給前台,ajax
member_name = request.post.get("
member_name")
member_nickname = request.post.get("
member_nickname")
member_pwd = make_password(request.post.get("
member_pwd"))
member_email = request.post.get("
member_email")
member_tel = request.post.get("
member_tel")
old_member_obj = member.objects.filter(member_tel=member_tel)
ifold_member_obj:
res[
'status
'] = 3res[
'info
'] = '
手機號已註冊
註冊成功,即將跳轉至首頁
'else
: res[
'status
'] = 2res[
'info
'] = '
發生了乙個意料之外的錯誤,註冊失敗
把這個結果告訴給前台,ajax
#response_new.set_cookie("member_id",member_obj.member_id)#設定cookie
#response_new.set_cookie("member_name", member_obj.member_name)
#session
request.session['
member_id
'] =member_obj.member_id
request.session[
'member_name
'] =member_obj.member_name
#response_new.set_cookie("member_id", member_obj.member_id, expires = 60 * 60 * 24 * 7)
return
response_new
return render(request, '
blog/regist.html
')
基於Django框架的python web
django是乙個開放源 的web應用框架,由python寫成。採用了mtv的框架模式,即模型m,檢視v和模版t。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容為主的 的,即是cms 內容管理系統 軟體。並於2005年7月在bsd許可證下發布。這套框架是以比利時的吉普賽爵士吉他手djan...
django中csrf token的驗證原理
1.django是怎麼驗證csrfmiddlewaretoken合法性的?2.每次重新整理頁面的時候中的csrf的value都會更新,每次重複登入的時候cookie的csrf令牌都會重新整理,那麼這兩個csrf token有什麼區別 csrf簡稱跨站請求偽造 django第一次響應來自某個客戶端的請...
Django自帶的使用者驗證系統
第一步 系統配置使用者表 第二步 使用者註冊和登陸驗證功能 首先,在models中建立使用者表,導包 from django.contrib.auth.models import abstractuser 建立使用者表 class user abstractuser username models....