1 項目描述##
WECO是一個開源的共創(chuàng)社區(qū),是一片創(chuàng)意互相碰撞的土壤。在這里你可以查看、喜歡、評論他人發(fā)布的創(chuàng)意,可以關(guān)注和私信感興趣的用戶,當(dāng)然還可以發(fā)布屬于自己的創(chuàng)意!


作為WECO的技術(shù)支持和開發(fā)人員,簡單來說,WECO是一個類似微博和知乎的內(nèi)容管理系統(tǒng),只不過這里的內(nèi)容元素,也即微博的微型博客、知乎的問題以及答案,變?yōu)榱藙?chuàng)意。因此在考慮功能設(shè)計的時候,主要是從創(chuàng)意本身的特點出發(fā),并結(jié)合社交平臺和內(nèi)容管理系統(tǒng)常見功能進(jìn)行考慮。
2 技術(shù)框架##
后端框架我選擇了Flask,一個輕量級的python框架,前端使用Flask依賴的Jinjia渲染模版,以及Jquery、Bootstrap和font-awesome等。項目中還用Flask編寫了一些RESTful APIs,基于動態(tài)分配token機(jī)制實現(xiàn)用戶的認(rèn)證和授權(quán)。
由于WECO屬于商業(yè)項目,故此處不直接透露其部署地址,但代碼始終堅持開源原則,托管于Github,clone下來后經(jīng)過幾步簡單的配置,一個嶄新的WECO(或者說常見功能皆具備的社交平臺)就可以運行了。開發(fā)時間為1個月,總共有205次commit,代碼量為萬行級別。
3 功能介紹##
WECO 1.0已經(jīng)實現(xiàn)的功能包括但不僅限于:
- 用戶注冊、登錄;
- 以“最新”、“最熱”兩種排序方式在首頁瀑布流展示最新創(chuàng)意;
- 創(chuàng)意詳情頁包括封面圖片、標(biāo)題、分類、標(biāo)簽、作者信息、點贊數(shù)、閱讀量、評論數(shù)和創(chuàng)意內(nèi)容,喜歡創(chuàng)意、評論創(chuàng)意和評論點贊功能也已經(jīng)實現(xiàn);
- 查看其他用戶,包括ta的頭像、昵稱、個性標(biāo)簽,ta的基本資料、ta的創(chuàng)意、ta喜歡的創(chuàng)意、ta的關(guān)注和ta的粉絲,關(guān)注用戶和發(fā)送私信的功能也已經(jīng)實現(xiàn);
- 填寫完創(chuàng)意標(biāo)題、分類和標(biāo)簽,選擇創(chuàng)意封面圖片、編輯好創(chuàng)意內(nèi)容之后即可發(fā)布創(chuàng)意。創(chuàng)意的內(nèi)容由一段段文字、一張張圖片和一個個視頻等原子元素組成,發(fā)布之后還可以繼續(xù)以時間軸的順序編輯、添加和刪除創(chuàng)意內(nèi)容的各個原子元素;
- 編輯創(chuàng)意,包括更換封面圖片、修改創(chuàng)意標(biāo)題、分類和標(biāo)簽等內(nèi)容;
- 搜索創(chuàng)意,搜索目標(biāo)可以是創(chuàng)意或其他用戶,支持關(guān)鍵詞匹配搜索和創(chuàng)意分類搜索,并且實時顯示“我”的最近搜索記錄和當(dāng)前系統(tǒng)實時熱搜;
- 個人中心,在這里可以編輯我的個人資料,包括修改頭像、昵稱、性別、個性標(biāo)簽等信息,并可以刪除自己的創(chuàng)意、取消喜歡已經(jīng)喜歡的創(chuàng)意、取消關(guān)注已經(jīng)關(guān)注的用戶、查看有哪些粉絲關(guān)注了自己;
- 我的消息,在這里可以看到和自己相關(guān)的動態(tài),如他人關(guān)注了自己、喜歡了自己的創(chuàng)意等,還可以看到別人發(fā)送的私信消息并打開私信窗。
文字介紹完了,準(zhǔn)備開始發(fā)圖了!










4 遇到的困難##
大的技術(shù)難點有三,第一是Flask應(yīng)用的部署,需要使用到wsgi,這里有參考介紹;第二是APIs的設(shè)計,采取動態(tài)分配token機(jī)制的話需要考慮到多設(shè)備登錄有效性問題;第三是應(yīng)用的模塊化,Blueprint是一個好的解決方案,或者這里也有指導(dǎo)介紹。
小的技術(shù)難點包括圖片上傳、前端壓縮和裁剪等,主要使用了lrz和cropit兩個js庫,萬事開頭難,一開始的摸索是必須的,學(xué)會之后就會方便高效很多。
5 總結(jié)##
本次項目給了我一個Flask實戰(zhàn)的好機(jī)會,其實也是邊學(xué)邊用、在使用的過程中加強(qiáng)自己對Flask的熟悉程度。Flask相對于CI、TP等php框架最大最明顯的優(yōu)勢是其為python框架,而python有著各個領(lǐng)域浩瀚無盡的拓展包。另外也接觸了前端裁剪、壓縮、上傳圖片,這些點在現(xiàn)在常見的應(yīng)用中還是相當(dāng)重要的。