在測試admin成功之後我開始寫web的第乙個功能,登入。順序如下:
1.首先在url裡面新增登入,我把登入的檔案放在account.py下面,所以url寫為:url(r'^accounts/login/$', 'sys_pm.account.userlogin',name='userlogin'),這裡的name引數為此條url的別名,當你想引用這條url時候,只需要action=這樣寫就可以呼叫到相應的方法。
2.當定義好url之後,我開始實現userlogin的方法,此段**大意就是當,**如下:
這裡注釋幾點:
1)關於get和post方法簡單說一下,get用於獲取或查詢資訊,post一般用於更新資源,所以有動作的使用post,查詢等的使用get。
2) loginform是django表單類裡的乙個表單,對於此表單類接下來會有討論。
3)httpresponseredirect重定向到新的url。from django.http import httpresponseredirect 。
4)request.user.is_authenticated()這個引數是user類裡驗證登入的函式
3.下面看一下對應的表單,重寫了如下幾個函式,關於usernamefield和passwordfield是對現有型別的的一次封裝,關於表單,這裡說的比較詳細細緻需要看官方文件
class loginform(forms.form):
username=usernamefield(required=true,max_length=50,min_length=6)
password=passwordfield(required=true,max_length=50,min_length=6)
def __init__(self,request=none,*args,**kwargs):
def clean(self):
def get_user_id(self):
def get_user(self):
4.對於現有型別的封裝其實很簡單,這裡只是根據需求去顯示一些提示資訊和做了一些優化工作。validator是對有效性的控制,對於username的實現一起寫在下面。
class usernamefield(charfield):
default_error_messages =
default_validators = [username]
def clean(self,value):
value = self.to_python(value).strip()
return super(usernamefield, self).clean(value)
username_re = re.compile(r'^[\w]+?$')
username = regexvalidator(username_re,u"賬號由字母數字下劃線組成的字串最少為6位",'invalid')
Django之專案的登入
今天這個專案的登入是延續之前的專案做的補充,首先登入的話要和資料庫關聯,並且資料庫中不能有相同的使用者名稱,接下來我們來介紹下專案的流程和操作。1.我們延續前面的專案,也會講一些前面講過的 這裡是djangoproject容器的urls.py檔案,我用箭頭指定的是我要用的 和命名空間的名字,專案根據...
Django框架之登入案例
內容 1 request.get和request.post 2 獲取get方法提交和post方法提交的資料 一 登入案例 登入邏輯 post請求 前端 doctype html html lang en head meta charset utf 8 title title title head b...
Django學習筆記之form表單
表單是通過類實現的,繼承自forms.form,然後在裡面定義要驗證的字段.在表單中,建立欄位跟模型是一模一樣的,但是沒有null true或者blank true等這幾種引數了,有的引數是required true false.使用is valid 方法可以驗證使用者提交的資料是否合法,而且htm...