平時做資料分析挖掘的結果,難免會需要在Web上展示出來,這樣更有逼格。那麼,開發web頁面難嗎?使用Java開發門檻太高,一堆注解絕對讓你投降;使用PHP開發,好像太騷了。其實,我們需要有這麼一個工具,既能做資料分析挖掘,又能做web展示,非你莫屬了——Python。
這裡,選擇Python的輕量級架構Flask,開發速度更快,開發一個簡單的話題釋出,支援基本的登陸、登出功能。
項目截圖
未登陸前
位登陸前,支援浏覽,隻讀權限,右上角有登陸按鈕。
登陸後
登陸後,可以釋出主題,可以登出。
可以看到,功能非常簡單,這是第一步,有了基礎才能自己學習,做出炫酷的分析結果。
項目過程
項目過程,分為以下幾步:
- web服務的第一個請求之前,需要初始化資料庫連接配接;
- 遊客(未登陸狀态),可以看到所有話題;
- 為了簡化,隻有一個使用者寫死,沒有使用者表;
- 登陸之後,可以釋出主題,資料儲存到資料庫;
- 登出後,回到遊客狀态;
項目代碼結構
這個項目是flask官方入門項目,取名flaskr,工程目錄結構如下:
- flask目錄:這裡暫且記為項目根目錄;
- static:存放網站靜态檔案,包括css樣式,圖檔檔案等;
- templates:前端jinja2 html模闆檔案;
- entries.db:SQLite3資料檔案;
- flaskr.py:Python項目主要代碼檔案;
- schema.sql:建表檔案,這裡需要一張表,儲存使用者釋出的話題;
最後,會上完整代碼,複制過去可以直接運作的。
初始化上下文環境
首先初始化應用和一些變量,包括Flask執行個體,g對象,如果使用session,需要初始化一個app.secret_key
注意:自己電腦上面執行的時候,D:/我的檔案/Codes/PyCode/web/flask/flaskr,這個是我的SQLite3位址,需要換成自己的,對應位址。
初始化資料庫
由于是"Hello world"入門項目,這裡使用的資料庫是小型的磁盤型資料庫SQLite3,沒必要連接配接大型資料庫。
SQLite3何許人也?
SQLite是一種嵌入式資料庫,它的資料庫就是一個檔案。由于SQLite本身是C寫的,而且體積很小,是以,經常被內建到各種應用程式中,Python就内置了SQLite3,是以,在Python中使用SQLite,不需要安裝任何東西,直接使用。
連接配接資料庫,需要擷取資料庫連接配接,SQLite3資料庫不錯在,則會建立一個檔案夾,名字為資料庫名:
第一次運作需要初始化資料庫和表,調用init_table方法即可。
每一個請求之前@app.before_request需要連接配接資料庫,request請求之後@app.teardown_request關閉資料庫:
使用者登陸、登出
通常,使用者登陸後,才有權限發表話題,登出後就是遊客身份,隻能看,不能釋出話題。
顯示所有釋出的話題
使用者登陸
為了簡單起見,沒有建使用者表,隻是在記憶體中定義了一個使用者,使用者名:name,密碼:password。
使用者登出
登出後,直接重定向到首頁。
登陸使用者釋出話題
使用者登陸後,可以釋出話題,内容存在SQLite3資料庫裡面,使用者每次重新整理或者跳轉到首頁需要讀取資料庫,顯示。通過表單發送資料,methods是POST。
項目完整代碼
完整代碼,這裡還是貼出來吧,雖然不太美觀,確定Python3已經安裝了flask子產品,否則通過pip3 install flask指令即可安裝 ,代碼可以直接執行。
flaskr.py
這裡是主要邏輯代碼。
還有前端代碼,就不貼出來了,完整項目已經上傳到Github,點選閱讀原文也可以,位址:
https://github.com/ddxygq/PyCode/tree/master/web/flask/flaskr
Github代碼下載下傳下來,可以直接執行的。
猜你可能喜歡
堆排序算法
markdown純手撸複雜數學公式
Python爬蟲解析庫——BeautifulSoup4(美麗的湯)
程式員必備的一些數學基礎知識