顯示具有 Session ID 標籤的文章。 顯示所有文章
顯示具有 Session ID 標籤的文章。 顯示所有文章

2019年10月8日 星期二

Django session 處理範例教學


之前提到過 Django cookie 處理,

cookie 的缺點也是很明顯的,

故只能用來存取一些比較不重要的資料,

現在就來教大家另一種作法:

Django session 處理範例教學

與 cookie 相同,

session 也是使用 dict 方式存取,

預設有效時間為兩周,

可透過

request.session.set_expiry()

修改 session 過期的時間,

在使用 session 之前,

先在 settings.py 找到底下兩個 item ,

通常預設是打開的,

要使用 session 的話要有這兩個 item。


同樣在 Chrome 瀏覽器中按 F12 ,

在 Storage 的 Cookies 中可找到包含 cookie 與 session ,

可看到 cookie 存放的是明碼的資訊,

此處範例的 cookie 為 19

但 session 僅能看到 session id



承襲之前的範例:
def check_session(request):
    if 'stmp_counter' not in request.session:
        tmpcounter = 1        
msg = 'create counter'    
    else:
        tmpcounter = int(request.session['stmp_counter'])
        tmpcounter = tmpcounter + 1       
        msg = 'counter = ' + str(tmpcounter)


    res = HttpResponse(msg)
    request.session['stmp_counter'] = tmpcounter
    request.session.set_expiry(3600)
    return res


def del_session(request):
    if 'stmp_counter' in request.session:
        msg = 'del counter, value = ' + str(request.session['stmp_counter'])
        res = HttpResponse(msg)
        del request.session['stmp_counter']
        return res
    else:
        return HttpResponse('No session')
透過 check_session 紀錄使用者瀏覽網站的次數,

如果 session 存在就將其加 1 ,

不存在的話,

就設定 session 為 1 ,

request.session.set_expiry(3600)

則是設定過期時間為一個小時。


透過 del 刪除特定的 session,

僅需使用

del requestion['session key']

若 session 不存在,

就顯示 No session 。

不管是使用有加密的 session 或者明碼存放在使用者電腦的 cookie ,

各有利弊,

只需要選擇適合的使用情境即可。

這裡是不及格研究室,

we are here , we are coding 





2018年10月13日 星期六

SEO基礎-網站結構優化

網站優化主要有兩大課題:

1.   網站結構優化
2.   關鍵字優化

今天主要來介紹:

SEO基礎-網站結構優化


之前提到過

SEO就是搜尋引擎優化(Search Engine Optimization)

為何要做SEO?


不外乎就是為了讓搜尋網站收錄網站,

藉以增加網站的能見度,

如同做生意一樣,

人潮多的地方,

所能聚集的商機也越好,

網站亦同,

不管是賣東西也好,

傳播訊息也好,

假設每一百個人有十個會進入瀏覽網站,

這10%固定的瀏覽量,

如果套用在成千上萬的網路人潮來看,

SEO做得好的網站,

勢必擁有較高的曝光量,

而這也同時是SEO的主要目的



如何讓搜尋引擎收錄網站內容呢?

姑且不論網站內容為何,

要讓搜尋引擎收錄內容,

就必須遵守   Spider   的運作原理,

簡單的講就是討好Spider,

所以有些妨礙Spider抓取,索引,排名網站的行為能免則免:

(這些行為不是不能做, 而是能少做就不要多做)



1.   Flash   /    Java script   連結

網站在追求美觀的時候,

使用一些Flash這沒有什麼問題,

但如果網站頁面只有大型的Flash檔而其他文字內容極少,

就會妨礙Spider索引文字資訊及其相關性,

這代表Spider在抓取該頁面時候,

必須另外費事從Flash中擷取裡面的文字內容和連結,


而Java script連結亦同,

雖說Spider能夠解析Java   script連結,

但在權重較低的網站,

Spider或許就不願意另外花時間執行腳本去追蹤連結,


能簡單扼要就不要讓Spider增加工作負擔


2.   Session   ID

當網站使用Session   ID追蹤使用者時,

會產生唯一的Session ID並加到URL,

這會導致每次Spider抓取同一頁面網站內容時,

會得到不同的URL,

若搜尋引擎能成功認出Session   ID,

當然這就不會是問題,

若否,

則會產生數個相同內容的不同URL,

而這會形成之前所提到的重複內容,

不利於網站排名

3.動態URL

資料庫驅動的網站所產生的,帶有等號問號及參數的網址,

這些URL本身就不利於Spider抓取,

能避免就避免


4.要求登入

Spider不會登入網站,

若網站內容放在一定要會員登入才能看到的區域,

這些內容將不會被搜尋引擎收錄,

原因是因為Spider不會註冊登入網站,

更不用說要帳號密碼登入才能看到的內容了






網站結構優化其實不只這些,

本文只有針對一些會妨礙Spider工作的行為做描述,

這些行為不是不能做,

而是能少做就盡量避免,


若有更好的替代方案的話,

就盡量採取對Spider有利的行為,

例如:

用cookies代替Session ID ,

利用301轉向取代Flash跳轉或Java   script跳轉,

利用CSS取代Java script來做視覺美化,