【Flask学习笔记】搭建目录,模型设计及构建蓝图

搭建的目录如下:

构建蓝图:

蓝图是什么?

官方解释:Flask 用 蓝图(blueprints) 的概念来在一个应用中或跨应用制作应用组件和支持通用的模式。 
蓝图很好地简化了大型应用工作的方式,并提供给 Flask 扩展在应用上注册操作的核心方法。 
一个 Blueprint 对象与 Flask 应用对象的工作方式很像,但它确实不是一个应用,而是一个描述如何构建或扩展应用的 蓝图 。

简而言之:蓝图 /Blueprint 是Flask应用程序 组件化 的方法,可以在一个应用内或跨越 多个项目共用蓝图。 
使用蓝图可以极大地简化大型应用的开发难度,也为Flask扩展 提供了一种在应用中注册服务的集中式机制。

应用场景:

1,把一个应用分解为一个蓝图的集合。这对大型应用是理想的。一个项目可以实例化一个应用对象,初始化几个扩展,并注册一集合的蓝图。

2,以 URL 前缀和/或子域名,在应用上注册一个蓝图。 URL 前缀/子域名中的参数即成为这个蓝图下的所有视图函数的共同的视图参数(默认情况下)。

3,在一个应用中用不同的 URL 规则多次注册一个蓝图。 4,通过蓝图提供模板过滤器、静态文件、模板和其它功能。一个蓝图不一定要实现应用或者视图函数。 5,初始化一个 Flask 扩展时,在这些情况中注册一个蓝图。

Flask 中的蓝图不是即插应用,因为它实际上并不是一个应用——它是可以注册,甚至可以多次注册到应用上的操作集合。

蓝图对象没有办法独立运行,必须将它注册到一个应用对象上才能生效。

蓝图作为 Flask 层提供分割的替代,共享应用配置,并且在必要情况下可以更改所注册的应用对象

使用方法:

1.创建 一个蓝图对象

blue = Blueprint("blue",__name__)

2.在这个蓝图对象上进行 操作 ,例如注册路由、指定静态文件夹、注册模板过滤器...

@blue.route('/') def blue_index():

  return 'Welcome to my blueprint'

3.在应用对象上 注册 这个蓝图对象

app.register_blueprint(blue,url_prefix='/blue')

此项目中实际代码:

admin和home目录下初始化__init__.py【对应上文蓝图使用方法步骤1】和views.py【对应上文步骤2】:

(下面代码以admin为例)

#admin/__init__.py
# coding=utf-8
from flask import Blueprint

admin = Blueprint("admin", __name__)
import app.admin.views


#admin/views.py
#coding=utf-8
from . import admin

@admin.route("/")
def index():
    return "<h1 style='color:red'>This is admin</h1>"

admin/home下定义了蓝图后,需要在app/__init__.py中注册【对应上文步骤3】:

# coding=utf-8
from flask import Flask

app = Flask(__name__)
app.debug = True

from app.home import home as home_Blueprint
from app.admin import admin as admin_Blueprint

app.register_blueprint(home_Blueprint)
app.register_blueprint(admin_Blueprint, url_prefix="/admin")

manage.py中设置app启动入口:

至此,蓝图构建完毕,可以运行:

猜你喜欢

转载自www.cnblogs.com/peterzone/p/9367781.html