本來開始用簡書的時候規(guī)定自己一周至少寫兩篇文章,然而現(xiàn)在距離上一篇的時間已經(jīng)過去了快一個月了,現(xiàn)在開始慢慢補吧。最近花了大約三個星期,從前端、后端、數(shù)據(jù)庫到部署完成了一個簡單的問答網(wǎng)站,目前部署在搬瓦工,還有不少bug沒有改,細(xì)節(jié)也有很多不合適,以后在慢慢改吧。
先放張圖

主要用到了semantic ui的css框架、vue.js、django、mysql,通過uwsgi部署在centos6,nginx反向代理。
基本上已經(jīng)做到了前后端分離,后端提供api接口,把大部分邏輯交給js去做。這里用了Django REST framework來實現(xiàn)api,用reqwest庫向api發(fā)送get、post請求實現(xiàn)增刪改查。
嘗試采用了token認(rèn)證,用js-cookie建立和移除cookies實現(xiàn)認(rèn)證,基本的權(quán)限控制已經(jīng)實現(xiàn)。
目前主要分為主頁、答案詳情頁、問題詳情頁、話題頁、問題頁、登錄&注冊頁、個人資料&資料修改頁。
暫時還未實現(xiàn)的功能有:
1、用戶之間互相回復(fù)
2、搜索
3、選中指定話題時該話題樣式變化
4、關(guān)注用戶
5、富文本
關(guān)于首頁顯示的內(nèi)容,知乎有自己的算法,我只是按id一股腦顯示的,暫時對這方面還沒什么頭緒。說是仿知乎,其實沒法比,就拿來練練手而已。
部署花了很多時間,前后得有一個多星期,主要是沒什么頭緒,不知道vps、uwsgi、nginx和域名這些之間的聯(lián)系,看了很多教程也不不明白,多虧了一個小伙伴給我打了電話講解了,現(xiàn)在感覺很簡單了。
vps就是一電腦,django項目運行在vps上。
WSGI是為為Python語言定義的Web服務(wù)器和Web應(yīng)用程序之間的一種通用的接口,uWSGI就是web服務(wù)器,用于接受前端發(fā)送的請求并處理后發(fā)送給web應(yīng)用程序,uwsgi是uWSGI服務(wù)器實現(xiàn)的獨有的協(xié)議,只用uwsgi也能實現(xiàn)部署。
nginx是一個反向代理服務(wù)器,使用nginx后,uwsgi只需要將django項目運行在本地,請求和響應(yīng)通過nginx進行。nginx可以將靜態(tài)文件單獨處理,速度要比uwsgi快。
域名需要解析到服務(wù)器的ip地址上,訪問域名時會將域名解析成對應(yīng)的ip。
關(guān)于部署,還要單獨寫一個總結(jié),把流程寫一邊,畢竟坑了我很長時間。網(wǎng)站還要繼續(xù)優(yōu)化調(diào)整細(xì)節(jié),數(shù)據(jù)庫的訪問也要繼續(xù)優(yōu)化。
最后放github。
--------------2017年2月6日----------------
過完年更新了一點。
1、添加搜索功能
2、添加評論分頁
3、添加用戶互相回復(fù)
現(xiàn)在才發(fā)現(xiàn)vue.js自己只用了一點皮毛, 組件部分還沒用到,本來想把網(wǎng)站組件化+webpack打包,結(jié)果比想象中的難的多,琢磨了幾天放棄了,修改還不如重新寫一個。這個也就這樣了,自己的知識還是太少,用到的東西太單一。
下一階段任務(wù)是vue+webpack做一個博客練練手。