Flask ==> 目錄結構


Flask ==>   目錄結構

一:目標

1.要求:

  1. 熟悉Flask的目錄結構。

  2. 了解應用,裝上新的組件往里面放,改怎么弄?

 

2.作業: 

  1.基於flask實現權限管理

  2.筆記:

    -  flask的請求周期

 

二:目錄結構內容

知識點:

  1.  從全局上了解flask項目的目錄結構

  2. flask項目的運行機制

  3.flask框架實現MVC架構

  4.flask-sqlalchemy  操作mysql數據庫

 

流程步驟:

  1.新建項目:blog系統

 

完成后的目錄結構是這樣的:非常簡單,一個static文件夾,一個templates文件夾,一個py文件,如下:

 

  2.目錄結構重構,引入包管理

1.針對上面的結構,在最上層blog2目錄下,做如下操作:

  1.新建一個runserver.py 文件, 作為“項目統一入口文件” 

  2. 新建blog2文件夾,把已經存在的 static,templates, blog2.py 移到blog2文件夾下,

  3. 然后分別創建 controller  , model 包(右擊blog2, 選擇 python packge )。 把blog2.py  改名為 __init__.py  ,

  4.新建setting.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文件, 創建項目對象,代碼如下:

from flask import Flask

#創建項目對象
app = Flask(__name__)

 

  2. 在 runserver.py , 添加如下代碼

from blog2 import app

@app.route('/')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run(debug=True)

 

   3. 運行runserver.py 文件:

 

然后在瀏覽器中輸入:http://127.0.0.1:5000/,會顯示helloworld字樣

 

 到這里為止,項目的雛形就可以正常運行了,下面的事情就簡單了,添加內容,讓項目有血有肉。

 

2.修改配置文件。

  1. 修改setting.py 文件,添加配置數據庫連接信息,如下:

 

  2.讓項目讀取配置文件

修改_init__,py : 添加如下內容(紅色部分):

# -*- coding: utf-8 -*-
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
#import  os
#print os.environ.keys()
#print os.environ.get('FLASKR_SETTINGS')
#加載配置文件內容
app.config.from_object('blog2.setting')     #模塊下的setting文件名,不用加py后綴 
app.config.from_envvar('FLASKR_SETTINGS')   #環境變量,指向配置文件setting的路徑

#創建數據庫對象 
db = SQLAlchemy(app)

 

 

  3.設計數據庫

1.本次練習比較簡單,就兩個表,一個user表,一個文章表。我們采用python的orm框架flask-sqlalchemy實現表的創建、增刪改查功能。

在model文件夾中添加User.py和Category.py文件,內容如下:

 1.user.py

from blog2 import db

class User(db.Model):
    __tablename__ = 'b_user'
    id = db.Column(db.Integer,primary_key=True)
    username = db.Column(db.String(10),unique=True)
    password = db.Column(db.String(16))

    def __init__(self,username,password):
        self.username  = username
        self.password = password
    def __repr__(self):
        return '<User %r>' % self.username

 

2.category.py

from blog2 import db

class Category(db.Model):
    __tablename__ = 'b_category'
    id = db.Column(db.Integer,primary_key=True)
    title = db.Column(db.String(20),unique=True)
    content = db.Column(db.String(100))

    def __init__(self,title,content):
        self.title = title
        self.content = content
    def __repr__(self):
        return '<Category %r>' % self.title
復制代碼

 

   3.創建數據庫和表

 

 

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM