Flask 蓝图 及其 蓝图命令行模式

蓝图定义

Flask blueprint 是flask自带的一种框架结构,方便搭建更大的项目结构

Flask blueprint 的官方案例

单蓝图模式

'''
蓝图官方案例
注册单一的蓝图实例
使用app加载蓝图【单蓝图模式】
'''

from  flask import Blueprint
from flask import Flask

simple_blueprint = Blueprint('simple_page',__name__) # 创建蓝图

#bluePrint的路由和视图
@simple_blueprint.route('/')
def index():
    return 'hello world'

# 启动项目
if __name__ == '__main__':
   app = Flask(__name__)
   app.register_blueprint(simple_blueprint) #注册蓝图
   app.run()

多蓝图模式

'''
blueprint1.py
使用app加载蓝图【多蓝图模式】
'''
from  flask import Blueprint

simple_blueprint1 = Blueprint('simple_page1',__name__)

#bluePrint的路由和视图
@simple_blueprint1.route('/index1')
def index():
    return 'hello index1'


'''
bluePrint2.py
使用app加载蓝图【多蓝图模式】
'''
from  flask import Blueprint

simple_blueprint2 = Blueprint('simple_page2',__name__)

#bluePrint的路由和视图
@simple_blueprint2.route('/index2')
def index():
    return 'hello index2'


'''
manage.py
'''
from flask import Flask
from FlaskBluePrint.ManyBluePrint.BluePrint1 import simple_blueprint1
from FlaskBluePrint.ManyBluePrint.BluePrint2 import simple_blueprint2

app = Flask(__name__)

app.register_blueprint(simple_blueprint1)
app.register_blueprint(simple_blueprint2)

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

​ 与bluePrint结合紧密的有两个插件,我们采用blueprint之后,通常会用一种叫做惰性加载的方式,加载app。Flask_scrtip 结合蓝图或者自己可以定义flask项目的命令模式。类似django的【命令行】Python manage.py runserver。

​ 由于flask轻量,便于开发,Flask项目可以和爬虫或者其他的项目结合。例如:使用flask + celery 驱动爬虫,使用flask + 微信(qq) 进行聊天机器人管理,使用flask + psutil 自动化监控。

flask-script模块

安装flask-script模块
pip install flask-script
案例【单蓝图命令行模式】
'''
flask script 官方案例
'''
from flask import  Flask
from  flask_script import Manager

app = Flask(__name__)

@app.route("/")
def index():
    return "Hello world"

manager = Manager(app) #对app进行命令行序列化

if __name__ == "__main__":
    manager.run()  #启动flask manage,manage启动app

在命令行运行上述案例
python 文件名称 runserver

多蓝图命令行模式

'''
使用app加载蓝图【多蓝图命令行模式1】
'''
from  flask import Blueprint

simple_blueprint1 = Blueprint('simple_page1',__name__)

#bluePrint的路由和视图
@simple_blueprint1.route('/index1')
def index():
    return 'hello index1'


'''
使用app加载蓝图【多蓝图命令行模式2】
'''
from  flask import Blueprint

simple_blueprint2 = Blueprint('simple_page2',__name__)

#bluePrint的路由和视图
@simple_blueprint2.route('/index2')
def index():
    return 'hello index2'


'''
多蓝图命令执行文件
'''
from flask import Flask
from flask_script import Manager
from BluePrint1 import simple_blueprint1
from BluePrint2 import simple_blueprint2

app = Flask(__name__) #创建蓝图

app.register_blueprint(simple_blueprint1) #注册蓝图
app.register_blueprint(simple_blueprint2)

manager = Manager(app) #对app进行命令行序列化

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

flask-script添加命令

'''
flask-script 添加命令
'''
from flask import Flask
from flask_script import Manager

app = Flask(__name__)

@app.route('/')

def index():
    return 'I am flaskScriptaddCommand file '

manager = Manager(app)# 对App进行命令行序列化

@manager.command
def hello(name = 'createsuperuser'):
    '''
    :param name: 是命令行可传递的参数,在命令行以--name 来传递
    '''
    username = input('Please enter your username: ')
    email = input('Please enter your email: ')
    password = input('Please enter your password: ')
    password_again = input('Please enter your password again: ')
    print('恭喜%s执行成功'%name)
    return '啦啦啦,德玛西亚!'
@manager.command
def root(ip = '127.0.0.1',port = 8000):
    '''

    :param ip: 是命令行可传递的参数,在命令行以--key 来传递
    :param port: 例:python flaskScriptAddCommand.py root --ip 0.0.0.0 --port 8080

    :return:
    '''
    print('root@%s:%s'%(ip,port))

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值