91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Flask blueprint

發布時間:2020-06-16 22:52:23 來源:網絡 閱讀:3753 作者:Ohimma 欄目:開發技術

一、簡介

面向對象的基本思想:多聚合、少繼承、低(松)耦合、高內聚

1、django的松耦合:體現在url和視圖函數之間,兩個之間的更改不需要依賴于對方內部構造

2、flask的blueprint:(藍圖/藍本)定義了可應用于單個應用的視圖,模板,靜態文件的集合,將應用組織成了不同的組件;我理解上就是模塊化,獨立。

比喻舉例

情景一:兩個人去吃麻辣香鍋,點一鍋上來,簡單方便吃的津津有味   
【兩個人開發的一個系統,放在一個文件內,傳送拷貝方便,也很好理解溝通】    
情景二:有一天同學聚餐,六十多人,點好幾大鍋,里邊什么都有,那就尷尬了,有的人不吃辣,有的人不吃這不吃那,一個菜一個碗區分開大家好弄   
【六十個人開發系統,同時從100行編輯文件,提交上去合并時就0疼了,各部分獨立出來,各自修改自己的部分,就顯得很和平了】

二、小案例

1:原始視圖:

# views.py

#!/usr/local/bin/python3
# -*- encoding: utf-8 -*-

from app import app

@app.route('/user/index')
def index():
    return 'user_index'

@app.route('/user/show')
def show():
    return 'user_show'

@app.route('/user/add')
def add():
    return 'user_add'

@app.route('/admin/index')
def adminindex():
    return 'admin_index'

@app.route('/admin/show')
def adminshow():
    return 'admin_show'

@app.route('/admin/add')
def adminadd():
    return 'admin_add'

#上面6個視圖,分別對應admin,user兩個用戶的三個功能,index、add、show

#如果admin、user不止三個功能,幾百個,幾千個,那僅view的代碼就不可review和維護了
#如果多個人同時開發admin,同時寫代碼提交,版本控制就會城災難
#如果我們要棄用admin功能塊,那我們要刪除多少行

2、使用藍圖使之pythonic

# admin.py

from flask import Blueprint,render_template, request

admin = Blueprint('admin', __name__)

@admin.route('/index')
def index():
    return render_template('admin/index.html')

@admin.route('/add')
def add():
    return 'admin_add'

@admin.route('/show')
def show():
    return 'admin_show'
# user.py

from flask import Blueprint, render_template, redirect

user = Blueprint('user',__name__)

@user.route('/index')
def index():
    return render_template('user/index.html')

@user.route('/add')
def add():
    return 'user_add'

@user.route('/show')
def show():
    return 'user_show'
# views.py

from app import app
from .user import user
from .admin import admin

#注冊藍圖并且設置request url條件
app.register_blueprint(admin,url_prefix='/admin')
app.register_blueprint(user, url_prefix='/user')

#現在再來回答上面三個問題就好回答了吧

三、設計架構

個人:大型應用先用 分區式,每個分區式內用功能式

功能式架構

yourapp/
    __init__.py
    static/
    templates/
        home/
        control_panel/
        admin/
    views/
        __init__.py
        home.py
        control_panel.py
        admin.py
    models.py

分區式架構

官方是這么說的:像常規的應用一樣,藍圖被設想為包含在一個文件夾中。當多個藍圖源于同一個文件夾時,可以不必考慮上述情況,但也這通常不是推薦的做法。

yourapp/
__init__.py
admin/
__init__.py
views.py
static/
templates/
home/
__init__.py
views.py
static/
templates/
control_panel/
__init__.py
views.py
static/
templates/
models.py

參考:https://spacewander.github.io/explore-flask-zh/7-blueprints.html

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

神农架林区| 保山市| 涿鹿县| 海伦市| 通州区| 融水| 塔河县| 灌云县| 石台县| 佛山市| 苏尼特右旗| 泊头市| 土默特右旗| 吉木萨尔县| 阿拉善盟| 长寿区| 同仁县| 大港区| 饶阳县| 睢宁县| 龙口市| 邵东县| 平潭县| 东丰县| 塘沽区| 静宁县| 越西县| 贡嘎县| 邓州市| 文成县| 肇庆市| 西峡县| 隆化县| 汉源县| 临江市| 松滋市| 竹北市| 天台县| 比如县| 桃江县| 吕梁市|