1項目搭建

一,結構flask

首先看目錄結構:app

整體結構:url

1,首先新建flask項目spa

2,在項目一級目錄中新建「apps」包,注意是包。新建他是爲了簡歷藍圖。code

3,apps下分爲cms後臺管理,front前臺頁面以及common公共頁面。orm

4,config是設置文件中間件

5,exts避免雙向引用簡歷的中間件,可參加我以前的博客。blog

 藍圖結構,以cms爲例:字符串

每一個藍圖中將表單、數據模型、視圖分開來(即:forms,models,views),在views中新建藍圖:源碼

1 from flask import Blueprint
2 
3 # 在‘bp = Blueprint('cms',__name__,url_prefix='cms')’中出錯了,緣由在於前綴沒加‘/4 bp = Blueprint('cms',__name__,url_prefix='/cms')
5 
6 @bp.route('/')
7 def index():
8     return 'cms index'

Note:第4行要加上「/」。爲啥後面不加呢?由於後面要是加的話就會造成:「http://127.0.0.1:5000/cms//index」,固然我這裏沒寫index,可是後面加了會使得URL中也畢業加兩條//才能訪問,不加是爲了防止重複。

在cms下的init文件中有:

from .views import bp

這句話其實是把同級文件views中的bp提到cms這一級別,方便其餘文件對他import。

好比主文件puppetbbs中原本應該是「from apps.cms.views import bp as cms_bp」,可是咱們在cms/front/common中init中加入了「from .views import bp」,使得從「apps.cms」就能導入bp。且咱們用as給他取個別名。纔有下面這種簡單的調用:

from apps.cms import bp as cms_bp

最後,在主文件中記得註冊藍圖。這裏有一點須要注意:

先看源碼,blueprint這裏沒說接受字符串,所以不要用把cms_bp打引號,應該爲下面代碼:

app.register_blueprint(cms_bp)  #Note:cms_bp不須要打引號

相關文章
相關標籤/搜索