2015年1月20日 14:41:47
階段性暫停!!
把運行結果截圖給了老師,老師說先整理下文檔,然后下學期來了再部署到服務器上。
那么,下學期來了,估計也要把Epm和CR1000什么的搞好了。
先總結一下目前的情況好了:
0.用到的技術
python語言,webpy框架,mysql數據庫,nginx部署,emacs和vim編輯器,bootstrap框架,echarts圖表庫
1.python搭建網站
用的是webpy框架
主要看webpy.org官方文檔
2.部署
用nginx做web server。
不過測試的時候用python code.py這種形式運行。
我的代碼在linux下運行時:
python view.py
或者:
先開nginx:sudo nginx
再開數據庫:sudo systemctl start mysqld
再運行python代碼:./start.sh (具體內容也是從webpy.org上copy來的。。)
3.echarts顯示數據
webpy使用了模版來渲染html頁面,通過webpy腳本從數據庫中取出數據,用render傳入模版html文件,模版頁面中賦值給js變量,然后echarts的數據部分使用js變量,就能輸出echart圖了!
4.幾個debug過的地方:
(1)python的遍歷器只能用一次!比如從數據庫中select出的數據,遍歷一遍寫入數據庫后,就不能再傳遞給模版頁面了,因為現在是空的數據了!最終我比較猥瑣,從數據中又取了一次數據。
(2)echarts圖中,坐標和toolbox什么的能顯示,但是數據不顯示?因為數據有問題,比如數據庫中存儲的是char類型的數據,在用python變量賦值給js變量的時候,python變量要用引號''括起來才行!
(3)echarts頁面中什么圖都沒有!如果js代碼部分有錯誤,比如變量名字大小寫出錯,就有這個問題!這個問題似乎是因為linux(fedora20)下的數據發反應速度太慢了?anyway,QQ輸入法是我最喜歡的,無論是界面還是速度。
(4)bootstrap-datetimepicker插件的使用:icon圖標不顯示?可能是因為js和css文件的導入順序有問題!
(5)bootstrap-datetimepicker插件中用戶選擇的時間,如何獲取到?這個是在segmentfault上提問后才知道的,里面的input標簽中搞一個id='xxx'就好了。
(6)webpy模版頁面中用jQuery不起作用?webpy的模版templetor中使用$符號作為一個key signal,因此jQuery一般用的$會引起混淆,解決辦法是jQuery的noConflict,然后$符號全換成jQuery就ok了
(7)webpy獲取用戶輸入,用戶提交的表單是多選框的情況。雖然現在放棄了多選框這個方案,不過說說解決策略無妨:i=web.input(your_data_name=[]),如果不說明你的數據是[]類型(list類型),那么會被當成string(好像是),這樣每次只能獲得checkbox的最后一個!
(8)bootstrap-datetimepicker和bootstrap3不兼容,只好退回到bootstrap2。網上似乎有兼容版本呢,不過我沒有去找。
(9)mysql中的decimal(a, b),a表示整個的長度,b表示小數部分的長度。和python中的'{xxx}'.format這種有點不一樣。
(10)nginx部署時發現css和js等靜態文件無法訪問?是因為權限不對。。find example_directory -type d -exec chmod 755 {} ;
find example_directory ! -type d -exec chmod 644 {} ;解決。
(11)先寫這些吧,其實感覺好水啊,可是自己還是在某些地方卡了好久。
文章列表