之前寫了一篇flask開發環境搭建,今天繼續,進行一個實戰小項目-blog系統。
blog系統很簡單,只有一個頁面,然后麻雀雖小五臟俱全。這里目的不是為了做項目而做項目,這篇文章本意是通過這次練習傳達以下幾個知識點:
1、從全局上了解flask項目的目錄結構
2、flask項目的運行機制
3、flask框架實現MVC架構
4、flask-sqlalchemy 操作mysql數據庫
一、新建項目:blog系統
在pycharm中,新建flask項目,如下圖:
完成后的目錄結構是這樣的:非常簡單,一個static文件夾,一個templates文件夾,一個py文件
以上的目錄結構是flask初始時的結構,這個只能應對很小的項目,對于大型復雜的項目,我們需要引入包的管理,MVC架構設計。
二、目錄結構重構,引入包管理
針對上面的結構,在最上層blog3目錄下,
1、新建一個runserver.py文件,作為項目統一入口文件
2、新建blog文件夾,把已存在的static,templates,blog3.py移到blog文件夾下,然后分別建controller、model文件夾。把blog3.py改名為__init__.py,
現在目錄如下所示:
這樣就相當于一個大工程結構了:
1)最上層blog2目錄是項目名稱,一個項目下可以包括多個模塊,也就是應用,每個應用下有自己的配置文件,初始化文件,MVC架構。
2)runserver.py:與應用模塊平級,作為項目啟動文件
3)第二級blog2目錄:模塊名稱
controller目錄:MVC中的C,主要存放視圖函數
model目錄:MVC中的M,主要存放實體類文件,映射數據庫中表
templates:MVC中的V,存放html文件
static:靜態文件,主要存放css,js等文件
__init__.py:模塊初始化文件,Flask 程序對象的創建必須在 __init__.py 文件里完成, 然后我們就可以安全的導入引用每個包。
setting.py:配置文件,數據庫用戶名密碼等等
三、開發代碼
1、先把項目運行起來:
1) 編寫__init__.py文件,創建項目對象,代碼如下:
# -*- coding: utf-8 -*-from flask import Flask#創建項目對象app = Flask(__name__)
2) 在runserver.py文件中添加如下代碼:
from blog3 import app@app.route('/')def hello_world(): return 'Hello World!'if __name__ == '__main__': app.run(debug=True)
新聞熱點
疑難解答