1. 程式人生 > >正宗Djiango框架(Bootstrap 、Django母版、Cookie)

正宗Djiango框架(Bootstrap 、Django母版、Cookie)

rom html 配置 signed -- obj https tick 發送

一. Bootstrap

一個包含CSS和JS的一個代碼庫
  -- 樣式

  -- 響應式 @media關鍵字

    --導航條

@media(nin-width:768px){
    .header{
                color:red
     }
}

  --- 柵格(12分塊,幾種屏幕顯示方式)

除了.col-xs總是水平排列,其他開始是堆疊在一起的,當大於這些閾值時將變為水平排列
            <div style="background-color: #dddddd"> //大屏幕min-width:1170px
                <div class
="col-lg-1">左邊</div> <div class="col-lg-11">右邊</div> </div> <div style="background-color: #dddddd"> //中屏幕min-width:970px <div class="col-md-1">左邊</div> <div class="col-md-11
">右邊</div> </div> <div style="background-color: #dddddd"> //小屏幕min-width:750px <div class="col-sm-1">左邊/div> <div class="col-sm-11">右邊</div> </div> <div style="background-color: #dddddd
"> //超小屏幕 <div class="col-xs-1">左邊</div> <div class="col-xs-11">右邊</div> </div>

  --- 手機屏幕的放大

<meta name="viewport" content="width=device-width, initial-scale=1">    
能縮放
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> 
不能縮放

  --路徑導航

<ol class="breadcrumb">
  <li><a href="#">Home</a></li>
  <li><a href="#">Library</a></li>
  <li class="active">Data</li>
</ol>    

2. 學員管理系統

  - Django母版:

- Django母版:
    母版: 存放所有頁面公用
    子板:
        繼承母版
        - 自定義當前頁面私有的東西
        {% extends "school.html" %}
        {% block css %}{% endblock %}
        {% block school %}{% endblock %}
        {% block js %}{% endblock %}                
            
        js調用   
        <script  type="text/javascript" src="/static/jquery-3.2.1.js"></script>

3. Cookie

a. 保存在瀏覽器端“鍵值對”
b. 服務端可以向用戶瀏覽器端寫cookie
c. 客戶端每次方請求時,會攜帶cookie去

應用:
    a. 投票
    b. 用戶登錄(一般應用)
    
--清除瀏覽數據---清除Cookie--就不能不輸密碼登錄了
--阻止網站設置任何數據--客戶端就不能接受服務端發送的Cookie了

設置
obj=redirect(/teachers/)
obj=Httpresponse
obj=render
obj.set_cookie("ticket",123123)
return obj     #設置Cookie,返回給客戶端,客戶端再Network中查看,Cookie都是在請求頭和響應頭裏面

獲取 request.Cookies.get("ticket)


set_cookie(
    key, 
    value=‘‘, 
    max_age=None, 
    expires=None, 
    path=/,
    domain=None, 
    secure=False,         
    httponly=False )               

max_age=None;Cookie的超時時間
expires=None;Cookie的超時日期

import datetime
from datetime import timedelta     時間的加減,需要導入這個模塊
ct = datetime.datetime.utcnow()    當前日期
v= timedelta(seconds=10)
value = ct + v
# obj.set_cookie(ticket,"asdasdsd",max_age=10)
# obj.set_cookie(ticket,"asdasdsd",expires=value)


path=/url   設置指定url下設定的cookie下才生效

domain=None,  指定域名下生效

secure=False    ture與Https相關,如果是Https訪問要改成ture

httponly=False  ture只能自Http請求中傳入,js代碼無法獲取到



cookie簽名:(加鹽)
    obj.set_signed_cookie(ticket,"123123",salt=jjjjjj) 
    
    request.get_signed_cookie(ticket,salt=jjjjjj)
    
自定制簽名

在配置文件中最後寫入:SIGNING_BACKEND = "c1.MySigner"
創建一個文件c1.py,通過繼承定制自己的加密方式
    from django.core.signing import TimestampSigner
    class MySigner(TimestampSigner):
        def sign(self, value):

            return value+123123123

        def unsign(self, value, max_age=None):

            v = value[0:-8]
            return v

  

正宗Djiango框架(Bootstrap 、Django母版、Cookie)