本次達內報報要豐富Python課程第三階段的部落格專案

我們期望在部落格當中就應該能有相簿功能,相信學員也會認同我們的想法的!所以這次我們將"我的相冊"功能補上了。
我的相冊功能包括:顯示用戶的相冊、上傳相冊。
首先我們先將photo.html加入flask的router當中,並且修改css、js,以及運用common.js中的makeHeader功能:


接著我們新增一個photo的app,並且制定url,blog中的url為v1/photo,photo中則為^$(無後綴),並且制定photoView:



接著編寫photo的model,這裡必須要有這幾個欄位:
照片名稱(photoName)
照片敘述(photoDesc)
照片(image)
用戶(user)

接著編寫photoView,photoView會有兩個功能:上傳跟取得。
兩者的通道都為POST,一開始先使用json.loads試圖將資料轉為json,如果失敗則為上傳,因上傳會使用的是FormData,所以json是不可能直接轉的,如果不是上傳,就使用filter來濾出資料,如果上傳的話則分別取得圖像以及資料做轉換及儲存:

接著編寫photo.html,先把ul的內容注釋,接著加上id -- photoShare,接下來編寫photo.js,先建立裡面的模板photoTemplate,接著使用$.ajax取得資料:


接著編寫上傳的部分,上傳html部分請看影片,接著我們撰寫upload的程式碼,主要是獲取元素的值,然後使用ajax發送,如果上傳成功則彈回我的相冊頁面:

成功後就會有以下畫面:


以上
Comments