天天看點

python web項目_項目實戰:使用Python的Flask子產品快速開發一個web入門小項目

python web項目_項目實戰:使用Python的Flask子產品快速開發一個web入門小項目

平時做資料分析挖掘的結果,難免會需要在Web上展示出來,這樣更有逼格。那麼,開發web頁面難嗎?使用Java開發門檻太高,一堆注解絕對讓你投降;使用PHP開發,好像太騷了。其實,我們需要有這麼一個工具,既能做資料分析挖掘,又能做web展示,非你莫屬了——Python。

這裡,選擇Python的輕量級架構Flask,開發速度更快,開發一個簡單的話題釋出,支援基本的登陸、登出功能。

項目截圖

未登陸前

位登陸前,支援浏覽,隻讀權限,右上角有登陸按鈕。

python web項目_項目實戰:使用Python的Flask子產品快速開發一個web入門小項目

登陸後

登陸後,可以釋出主題,可以登出。

python web項目_項目實戰:使用Python的Flask子產品快速開發一個web入門小項目

可以看到,功能非常簡單,這是第一步,有了基礎才能自己學習,做出炫酷的分析結果。

項目過程

項目過程,分為以下幾步:

  • web服務的第一個請求之前,需要初始化資料庫連接配接;
  • 遊客(未登陸狀态),可以看到所有話題;
  • 為了簡化,隻有一個使用者寫死,沒有使用者表;
  • 登陸之後,可以釋出主題,資料儲存到資料庫;
  • 登出後,回到遊客狀态;

項目代碼結構

這個項目是flask官方入門項目,取名flaskr,工程目錄結構如下:

python web項目_項目實戰:使用Python的Flask子產品快速開發一個web入門小項目
  • 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(美麗的湯)

程式員必備的一些數學基礎知識

python web項目_項目實戰:使用Python的Flask子產品快速開發一個web入門小項目

繼續閱讀