day04---flask蓝图的基本使用

随着需求的扩展,项目的功能越来越多,因此,为了更换的管理项目的目录结构,需要把每一个功能模块,存放到相应的目录中,比如把这里的admin,user相关的视图方法分为两个组件,一个是admin组件,一个是user组件.这时我们可以
创建两个蓝图实现这两个独立的组件。

什么是蓝图

一个蓝图定义了可用于单个应用的视图,模板,静态文件等等的集合。

创建一个蓝图

比较好的习惯是将蓝图放在一个单独的包里,所以让我们先创建一个admin子目录,并创建一个空的__init__.py表示它是一个Python的包。
我们先看看项目最初的目录结构:

didiplus@DESKTOP-DOBAOAT:~/Flask_admin$ tree
.
├── README.md
├── apps
│   └── __init__.py
├── config.py
├── manager.py
└── requirements.txt

现在有个需求,要增加一个adminuser模块,统一把功能模块存放到apps目录。

didiplus@DESKTOP-DOBAOAT:~/Flask_admin$ mkdir apps/{user,admin}
didiplus@DESKTOP-DOBAOAT:~/Flask_admin$ tree
.
├── README.md
├── apps
│   ├── __init__.py
│   ├── admin
│   └── user
├── config.py
├── manager.py
└── requirements.txt

3 directories, 5 files

现在模块正式编写蓝图,逻辑功能我们统一存放到各自模块下的views.py文件中。

#admin/views.py
from flask import Blueprint # 导入Flask中的蓝图Blueprint模块

admin_bp=Blueprint('admin',__name__)  # 实例化一个蓝图(Blueprint)对象

@admin_bp.route('/')
def index():
    return '

Hello, this is admin blueprint

'

manager.py,注册这两个蓝图。

from apps import create_app
from flask_script import Manager,Server

'''
生成环境-produce
开发环境-development
测试环境-test
以上三个值通过config配置
'''
app = create_app('development') 

#注册蓝图
from apps.admin.views import admin_bp
from apps.user.views import user_bp
app.register_blueprint(admin_bp,url_prefix='/admin')
app.register_blueprint(user_bp,url_prefix='/user')


manager = Manager(app)

manager.add_command('runserver',Server('0.0.0.0',port=5000))



if __name__ == "__main__":
    manager.run()

url_prefix:是为蓝图添加前缀,在访问时,必须添加这个前缀

通过上述的register_blueprint就可以把,蓝图注册到app中,接下来,启动项目,就能访问到这两个功能模块。
day04---flask蓝图的基本使用_第1张图片

你可能感兴趣的:(Flask,python,flask,蓝图,django)