Django筆記07

forms組件html

 forms能夠完成前端

  1 生成前端html代碼django

  2 校驗數據後端

  3 展現校驗信息瀏覽器

 forms組件的使用安全

  1 簡單forms組件校驗數據服務器

1 寫一個forms校驗的類
  from django import forms
  class RegForm(forms.Form):
    # forms組件中定義的字段,默認必須傳值
    name = forms.CharField(max_length=6)
    pwd = forms.charField(max_length=8,min_length=3)
    email = forms.EmailField()
2 實例化RegForm傳值
  # 注意傳入的字典的key必須跟類裏面的變量名一致,校驗的數據能夠多傳,可是不能少傳
  res = RegForm({"name":"dsb","pwd":"123","email":"123@qq.com"})
3 數據是否合法
  res.is_valid() # 若是數據所有驗證經過才爲True不然爲False
4 查看驗證經過的數據
  res.cleaned_data # 會將驗證同的數據存放到cleaned_data中
5 查看校驗失敗的數據
  res.errors

渲染標籤cookie

  froms組件三種渲染方式session

第一種(封裝程度過高,無法作擴展,不推薦使用)
  {{ form_obj.as_p }}
  {{ form_obj.as_ul }}
第二種
  <form>
    <p>{{ form_obj.name.label}}{{ form_obj.name }}</p>
    <p>{{ form_obj.pwd.label}}{{ form_obj.pwd }}</p>
    <p>{{ form_obj.email.label}}{{ form_obj.email }}</p>
  </form>
第三種
  <form>
    {% for foo in form_obj %}
      <p>{{ foo.label }}{{ foo }}</p>
    {% endfor %}
  </form>

展現報錯信息spa

  在p標籤內添加span標籤用於顯示錯誤信息

  <p>{{ foo.label }}{{ foo }} <span>{{ foo.errors.0 }}</span></p>

局部鉤子

  導入 from django.core.exceptions import ValidationError

  def clean_字段名稱(self):

  self.add_error 添加錯誤

  校驗完成返回校驗的字段

全局鉤子

  def clean(self):

  校驗完成返回self.cleaned_data

forms組件能夠實現三大功能,其實就是爲modles種的表服務

https://www.cnblogs.com/liuqingzheng/articles/9509775.html

https://www.cnblogs.com/Dominic-Ji/p/9240365.html?tdsourcetag=s_pctim_aiomsg

 

http協議不保存用戶狀態(信息),Cookie和Session都是爲了可以保存用戶信息

Cookie

  本質:保存在瀏覽器上的鍵值對

  用途:標識當前用戶信息

設置Cookie
  django返回的信息都是HttpResponse對象
  res = render()
  res.set_cookies("name","jason")
獲取Cookie
  request.COOKIES['key']
  request.COOKIES.get('key')
超時時間
  max_age=None

Session:

  本質:保存在服務器上的鍵值對

  用途:記錄當前用戶信息

  session其實也是基於cookie工做的爲了數據更加安全,給瀏覽器存一個隨機字符串,將用戶信息存在服務端,用戶在訪問時,拿到隨機字符串和後端進行匹配

設置Session(django默認的session過時時間是14天)
  request.session['k1'] = xxx
  # 上面這句話幹了三件事
    # 1 內部生成一個隨機字符串,一個瀏覽器對應一個
    # 2 隨機數字符串與數據會存入django session表中
    # 3 將隨機字符串設置到瀏覽器的cookie中
獲取session
  request.session.get("k1")
刪除session
  # 刪除當前會話的全部session數據
  request.session.delete() # 只刪除django_session表中的數據
  # 刪除當前會話數據並刪除繪畫的Cookie 
  request.session.flush() # 表和瀏覽器的session都刪除
設置會話session和cookie的超時時間
  request.seesion.set_expiry(value) # value值同cookie設置超時時間相同
  若是value是整數,session會在些秒後失效
  若是value是datatime或timedalta,會在這個時間後失效
  若是value是0,會在用戶關閉瀏覽器後失效
  若是value是None,session會依賴全局session失效策略

 

http://www.javashuo.com/article/p-fjrczegi-s.html

相關文章
相關標籤/搜索