Python3.5 學習二十四

本節課程大綱:html

-----------------------------------------------------------------------------------------------------------python

  Model:jquery

    -數據庫操做數據庫

    -驗證小程序

  Form:服務器

    class LoginForm():session

      email = fields.EmailField()mvc

    -is_valid ->每個字段進行正則(字段內置正則)  +  clean_字段  -> clean(__all__) ->  _post_clean函數

    -cleand_data源碼分析

    -error

推薦使用,耦合低

-----------------------------------------------------------------------------------------------------------

1、ModelForm

   Model+Form結合體  --> 驗證+數據庫操做

  

 

  結合20181010的實例,看使用ModelForm帶來的便利性

  obj.save()可將單表、多對多關聯表數據一併保存

  但只會保存單表數據,而不保存多對多表記錄,能夠看源碼分析其原理。

    想要加入M2M表記錄,須要多執行如下一句代碼:

    obj.save_m2m()

  

  Userinfo列表編輯保存,用ModelForm的實現源碼中,注意點:

  一、修改界面的數據保存,須要引用instance

Django2.0後,URL中須要引入re_path來生成一個帶有正則的url對應

頁面上也能夠自定義一些額外的字段,不須要保存到數據庫的

 

 驗證的clean鉤子用法,和form以前講的徹底同樣。

 

對於ModelForm回顧:

一、能夠生成HTML標籤,標籤能夠默認排列,能夠逐個寫入

  class Meta:。。。定製

二、mf=xxxModelForm(instance=Modelobj) 寫入默認值

三、能夠自定義加字段,不帶入數據庫,作驗證用等

四、各類驗證 is_valid() ->每一個字段正則、每一個字段方法、clean、Postclean

五、mf.save()   =>instace = mf.save(False)

        instace.save()

        mf.save_m2m()

耦合度高,使用方便,但侷限性高,小程序能夠用,可能會大的程序就不要用了。

 

2、Ajax

Ajax全套  http://www.cnblogs.com/wupeiqi/articles/5703697.html

Python開發目錄  http://www.cnblogs.com/wupeiqi/articles/5433893.html

  原生  

  一、利用原生XmlHTTPResponse來發送POST請求時,都要設置請求頭,必定要注意

  二、原生操做對象的兼容性設置

function getXHR(){
var xhr = null;
if(XMLHttpRequest){
xhr=new XMLHttpRequest();
}
else{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
return xhr;
}

  jQuery

  僞Ajax操做:

  

僞Ajax提交的數據獲取:

 

  三種選擇的時機:

    若是是普通數據(非文件),推薦使用順序:jQuery,XMLHttpRequest,iframe

    

3、文件上傳(圖片預覽)

  -Form提交

  -Ajax上傳

{#          jquery上傳文件時,須要設置如下兩個參數#}
processData:false,
contentType:false,

  

  -iframe上傳

三種方式實現代碼見程序20181010

文件上傳選擇時機:iframe,jQuery(FormData),XMLHttpRequest(FormData)

圖片上傳後的預覽:上傳後找到文件路徑,而後加一個‘/’,做爲可讀取位置

用Jquery動態生成載入一個img標籤顯示便可。

若是不想單獨點按鈕上傳,能夠在文件input框的onchange事件中寫上傳方法。

 

4、圖片驗證碼  +  Session

 實現流程:

Get請求:生成驗證碼、存放入Session

    建立一張圖片給用戶返回

POST請求:提交數據,提交驗證碼,服務器將提交的數據和Session進行對比驗證

靜態文件不須要寫URL,由於Django是後臺在幫助打開讀取返回的操做。

 

 

 

 

 

總結:

--session

-check_code.py(依賴:Pillow;字體文件)

-刷新驗證碼:利用src屬性後面加「?」

 

    

5、富文本插件  CKEditor,UEEditor,TinyEditor,KinkEditor

  -基本使用

  參考筆記:http://www.cnblogs.com/wupeiqi/articles/6307554.html

  -文件上傳、多文件上傳、文件空間管理

  學習Kindle中各類文件上傳

 

  --XSS攻擊(過濾的函數)

 

關於跨表操做的性能提高方式:

1 Queryset.selectedrelated  直接跨表到關聯表,讀全部記錄  

2 Queryset.prefishrelated  兩次跨表,第一次找__ID字段值,第二次跨表查 in __ID字段值的記錄,放入內存,以提升效率

 

做業:

主站:

  http://127.0.0.1:8000  博客首頁

  http://127.0.0.1:8000/xxx/1.html  某人的某篇文章

我的博客:

  http://127.0.0.1/xxx/  某人的博客

  http://127.0.0.1/xxx/tag/python.html 某人的博客分類 

  http://127.0.0.1/xxx/catetory/mvc.html 某人的博客分類

  http://127.0.0.1/xxx/date/2011-11.html 某人的博客分類  

我的後臺管理:

  我的信息管理

  標籤管理

  分類管理

  文章管理

    建立

    修改文章

 

相關文章
相關標籤/搜索