1、Form組件css
1 day73 2018-08-10 2 3 1. 內容回顧 4 1. form表單組件 5 1. 經常使用字段 6 1. CharField() 7 2. ChoiceField() 8 2. 參數或配置 9 1. label="label標籤顯示的文本內容" 10 2. initial="默認值" 11 3. widget=forms.widgets.TextInput() --> <input typle='text'/> 12 widget=forms.widgets.PasswordInput( 13 attrs={"class": "c1", "s12": "hao"} 14 ) 15 4. required=False --> is_valid()校驗的時候該字段沒有值也不報錯 16 5. error_messages={"required": "xx字段不能爲空", "max_length": "xx字段最多不能超過位數"} 17 6. max_length 18 7. min_length 19 20 8. validators=[驗證器1,驗證器2, ...] 21 3. 驗證器 22 1. 內置正則驗證 23 from django.core.validators import RegexValidator 24 validators=[RegexValidator(r'^1[3-9]\d{9}$', "手機號碼格式不正確!"), ] 25 2. 自定義方法實現 26 from django.core.exceptions import ValidationError 27 # 自定義校驗的方法 28 def name_check(value): 29 if 'jinpingmei' in value: 30 raise ValidationError("不符合社會主義核心價值觀!") 31 else: 32 return value 33 34 validators=[name_check, ], 35 4. 鉤子函數 36 0. self.cleaned_data --> 用來存放通過驗證數據的大字典 37 self.add_error("字段名", "錯誤提示信息") 38 39 1. 局部鉤子(Hook) 40 經過自定義一個clean_字段名的方法實現字段的校驗 41 2. 全局鉤子 42 此時 每一個字段獨立的校驗都走完了,cleaned_data中已經存放着全部字段的數據 43 def clean(self): 44 print("我但是看過源碼的人,我知道你確定會執行這個方法!") 45 # 重寫父類的clean方法 46 # 該clean方法, 在每一個字段都校驗經過以後才調用執行 47 pwd = self.cleaned_data.get("pwd") 48 re_pwd = self.cleaned_data.get("re_pwd") 49 50 if re_pwd and re_pwd == pwd: 51 # 確認密碼和密碼相同, 正常 52 return self.cleaned_data 53 else: 54 # 確認密碼和密碼不一樣 55 self.add_error('re_pwd', "兩次密碼不一致") # ? 56 raise ValidationError("兩次密碼不一致") 57 58 59 2. 今日內容 60 1. auth認證 61 默認Django內置的認證系統, 默認在數據庫中使用auth_user 62 from django.contrib import auth 63 1. 建立一個超級用戶 64 python manage.py createsuperuser 65 2. 驗證用戶名和密碼是否正確 66 user = auth.authenticate(request, username, password) 67 3. 登陸 68 auth.login(request, user) --> user是上一步的獲得的user對象 69 4. 註銷 70 auth.logout(request) --> 將當前請求的session數據刪除 71 72 5. 登陸認證的裝飾器 73 auth.decorators.login_required 74 默認跳轉的登陸url: /accounts/login/ 75 在settings.py中 配置 LOGIN_URL = "你的登陸url" 76 77 6. is_authenticated() 78 判斷當前request.user是否通過認證,通過認證就返回True,不然是False 79 80 7. AuthenticationMiddleware中間件究竟作了什麼? 81 request.user = user, 匿名用戶對象 82 83 8. create_user() 84 9. create_superuser() 85 10. check_password() 86 11. set_password() 87 88 2. 擴展默認的auth_user表: 89 from django.contrib.auth.models import AbstractUser 90 class UserInfo(AbstractUser): 91 # 擴展auth模塊默認的數據表 92 phone = models.CharField(max_length=11) 93 注意事項: 94 1. 告訴Django使用個人UserInfo表來作用戶的管理 95 在settings.py中配置: 96 AUTH_USER_MODEL = "app名.UserInfo" 97 98 99 3. BBS/CMS 100 1. 需求分析 101 1. 登陸註冊、註銷 102 2. 文章分頁 103 3. 評論 104 4. 點贊 105 5. 發帖 106 6. 查看文章 107 7. 博客站點主題自定製 108 8. 博客應該有分類 109 110 111 2. 表結構設計 112 1. 用戶表 113 2. 文章表 114 3. 評論 多對一關聯文章 115 4. 點贊/反對 多對一關聯文章 一個用戶只能對一篇文章點贊一次 116 5. 博客主題表 存的每一個博主的主題css文件 117 6. 文章分類表 一對多關聯文章 118 7. 文章標籤表 多對多關聯文章表 119 120 每一個組 設計一套models.py ,最遲週日的晚上8:00以前發到我QQ郵箱 121 122 3. 今日任務 123 1. 好好玩,調整狀態 準備進入項目階段 124 125 4. 週末任務 126 1. authBlog整理一下 127 2. 本身在課上註冊登陸的例子基礎上實現一個用戶修改密碼的功能 128 1. 登陸的用戶才能修改密碼 129 2. 修改密碼以前先校驗原密碼是否正確 130 3. 加上Bootstrao樣式 131 3. 設計BBS項目表結構 132 4. 複習jQuery和form,週一要用!!! 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
2、Django認證系統html
http://wuchengyi.com/post/16/python
https://www.cnblogs.com/liwenzhou/p/9030211.html數據庫