day19-form表單&auth模塊、項目初識

1.html

form組件的主要功能以下:python

  • 生成頁面可用的HTML標籤
  • 對用戶提交的數據進行校驗
  • 保留上次輸入內容
    1. Django Admin的簡單用法:
            1. 建立管理員帳號
                python3 manage.py createsuperuser
            2. 在admin註冊咱們的表
                在app目錄下面的admin.py裏面按如下語法註冊
                admin.site.register(models.類名)
            3. 其餘配置項
                1. admin頁面顯示中文
                    settings.py中修改LANGUAGE_CODE = 'zh-hans'
                2. 表名顯示中文
                    類下面寫以下配置項
                        class Meta:
                            verbose_name = "出版社"
                            verbose_name_plural = verbose_name
                3. 字段顯示中文
                    address = models.TextField(verbose_name="出版社地址")        
        2. form
            1. form的做用
                1. 生成HTML代碼
                2. 幫咱們作數據有效性的校驗
                3. 保留上次輸入內容,顯示錯誤提示
        
            2. form組件生成html代碼

            3. form組件校驗數據有效性
                1. 內置的校驗規則
                    1. require=True    該字段必填
                    2. max_length      該字段的最大長度
                    3. min_length      該字段的最小長度
                    
                2. 自定義校驗規則
                    1. phone的格式 利用內置的正則校驗器
                        from django.core.validators import RegexValidator
                        validators=[RegexValidator(r'^1[356789]\d{9}$', "手機號碼格式不正確")],
                    2. 手機號的惟一性校驗
                        手寫一個校驗函數
                    
                3. 使用鉤子函數作校驗
                    1. 局部鉤子(hook)
                        在form類內部定義一個 clean_字段名() 方法
                        
                    2. 全局鉤子
                        在form類內部定義一個 clean() 方法 
            4. form組合如何給html標籤設置默認值
                1. 每個字段設置默認值
                    initial="默認值"            
        3. model form
            1. 必須繼承forms.ModelForm

            2. class Meta:
                model = "一對一關聯的model類名"
                fields = "__all__"
            3. 實例化
                1. BookModelForm(instance=book_obj)
                2. BookModelForm(request.POST, instance=book_obj)
            4. form_obj.save()
View Code

 

1.form
1.django admin 用法
。。
先從url寫起,views,html

form引入:1.對html內容優化 2.對用戶提交的數據進行優化
做用:1.生成html代碼2.幫咱們作數據有效性校驗
3.保留上次輸入內容,顯示錯誤提示

models中要加入__str__,用戶展現中才顯示中文
*打散

動態獲取queryset

鉤子函數---全局、局部鉤子
密碼、確認密碼:

label.id_for_label?? 取到label標籤的id值

autocomplete="off" 去掉歷史自動填充
字段能夠爲空 required=False,

每個字段設置默認值 initial="默認值"
form_obj = BookForm({"title": "書的默認值呀2", "publish_date": "2018-01-01"})

# 把ORM中一個對象 快速轉換成 字典格式
from django.forms import model_to_dict
book_dict = model_to_dict(book_obj)
book_dict["publish_date"] = book_obj.publish_date.strftime("%Y-%m-%d")
print(book_dict)
form_obj = BookForm(book_dict)

增長、編輯

form缺點:與model中重複

model form:form寫數據,最後到model中,讓代碼更簡潔
model---url-----views----forms---html
model---url----views---modelform--html


2.auth模塊
authen。。 login
login_required
配置一下login_url
auth模塊實現登陸後能跳轉。。
create_user()

做業:建立用戶、檢查密碼、修改密碼、註銷

擴展 auth_user表



3.項目初識
BBS
settings--model--url---form----views--html
登陸
/static/...本身配置文件的名字
static/...本身直接引用,不用加/

隨機生成圖片--pillow模塊
驗證碼的存入,存入內存中;get_value取值;
存放在session中,每一個用戶的驗證碼單獨保存
點擊一下,驗證碼刷新----利用src屬性改變,加載

滑動驗證碼 -ok



註冊----------下週
day19 20180-08-26

1.今日內容
    1. form和model form:https://www.cnblogs.com/liwenzhou/p/8747872.html
        1. Django Admin的簡單用法:
            1. 建立管理員帳號
                python3 manage.py createsuperuser
            2. 在admin註冊咱們的表
                在app目錄下面的admin.py裏面按如下語法註冊
                admin.site.register(models.類名)
            3. 其餘配置項
                1. admin頁面顯示中文
                    settings.py中修改LANGUAGE_CODE = 'zh-hans'
                2. 表名顯示中文
                    類下面寫以下配置項
                        class Meta:
                            verbose_name = "出版社"
                            verbose_name_plural = verbose_name
                3. 字段顯示中文
                    address = models.TextField(verbose_name="出版社地址")        
        2. form
            1. form的做用
                1. 生成HTML代碼
                2. 幫咱們作數據有效性的校驗
                3. 保留上次輸入內容,顯示錯誤提示
        
            2. form組件生成html代碼

            3. form組件校驗數據有效性
                1. 內置的校驗規則
                    1. require=True    該字段必填
                    2. max_length      該字段的最大長度
                    3. min_length      該字段的最小長度
                    
                2. 自定義校驗規則
                    1. phone的格式 利用內置的正則校驗器
                        from django.core.validators import RegexValidator
                        validators=[RegexValidator(r'^1[356789]\d{9}$', "手機號碼格式不正確")],
                    2. 手機號的惟一性校驗
                        手寫一個校驗函數
                    
                3. 使用鉤子函數作校驗
                    1. 局部鉤子(hook)
                        在form類內部定義一個 clean_字段名() 方法
                        
                    2. 全局鉤子
                        在form類內部定義一個 clean() 方法 
            4. form組合如何給html標籤設置默認值
                1. 每個字段設置默認值
                    initial="默認值"            
        3. model form
            1. 必須繼承forms.ModelForm

            2. class Meta:
                model = "一對一關聯的model類名"
                fields = "__all__"
            3. 實例化
                1. BookModelForm(instance=book_obj)
                2. BookModelForm(request.POST, instance=book_obj)
            4. form_obj.save()
                
            
    2. auth模塊+報障系統(BBS) :https://www.cnblogs.com/liwenzhou/p/9030211.html
        1. 設計一套用戶認證系統
            1. 設計表
            2. 登錄
            3. 註冊
            4. 我的中心那些
            5. 驗證碼
            6. 登錄認證
        2. auth模塊的經常使用方法
            1. authenticate()
            2. login()
            3. create_user()
            4. create_superuser()
            5. logout()
            6. check_password()
            7. set_password()
        3. 擴展默認的auth_user表
           默認auth模塊使用的是auth_user表,不知足實際需求
            1. 必須繼承AbstractUser
            from django.contrib.auth.models import AbstractUser
            class UserInfo(AbstractUser):
                phone = models.CharField(max_length=11)
            2. 告訴Django使用咱們的用戶表代替auth_user表
                AUTH_USER_MODEL = "app名.UserInfo"
            再次注意:

            一旦咱們指定了新的認證系統所使用的表,
            咱們就須要從新在數據庫中建立該表,而不能繼續使用原來默認的auth_user表了。
            
            
            
        1. 登錄
            1. 驗證碼
                1. 本身生成驗證碼
                    1. pillow模塊的使用
                        1. pip install pillow
                        2. 生成圖片
                        3. 在圖片上寫字符
                        4. 在圖片上畫線
                    2. 內存操做
                        from io import BytesIO
                        f1 = BytesIO()
                    3. 驗證碼保存在哪裏?
                        保存在session中,由於每一個請求驗證碼都不一樣。
                    4. 點擊驗證碼圖片刷新  經過js修改src屬性。
                        在login.html中綁定事件
                        $("#v-code-img").click(function () {
                            this.src += "?";
                        });
            2. 滑動驗證碼
                極驗科技:https://docs.geetest.com/install/deploy/server/python
                
        
        2. 註冊
            下週    
        
2. 今日任務
    1. 回去複習下裝飾器
    2. 回去複習下時間模塊(time、datetime)


3. 本週做業
    1. form組件和auth模塊整理好博客
    2. admin本身研究研究    0828ok
    3. 把今天項目的登錄功能本身獨立寫一遍
    4. 我的中心頁面
        修改的密碼功能
    5. 報障系統設計表結果
        需求:
            普通的員工
            運維員工(超級用戶)
            故障總結是一篇文章
            評論你的故障總結
            故障總結能夠點 支持 和 反對
            故障總結 根據產品線 作分類
            故障總結 能夠打標籤
        
        做業是根據上面列出來的需求 設計表結構
        
    
    
    
課上筆記
相關文章
相關標籤/搜索