美文网首页
(二)Flask-Blueprint 搭建工程

(二)Flask-Blueprint 搭建工程

作者: 零度心脉 | 来源:发表于2018-06-26 23:08 被阅读0次

    Flask-Blueprint用来布置项目工程 是一个非常好用的蓝图设计
    开始先创建一个Hello World的工程 这个上一个记录已经阐述 这里就省略了
    下来是我个人的布置工程目录,这个都是由个习惯进行的布置,多的不说截图后代码送上


    image.png

    在pyFirst根目录下再建一个python package "app"把static和templates都放到app包目录下
    同时包下的init.py中代码设定:

    from flask import Flask
    app = Flask(__name__)
    
    from app import views
    

    app\views.py中代码:

    from app import app
    from app.login import login
    
    app.register_blueprint(login, url_prefix='/login') #注册login
    
    #首页显示
    @app.route('/')
    @app.route('/index')
    def index():
        return "Home Page"
    

    好了首页已经设定好了,下来我们在app包中把项目管理项目已包的方式分开处理 这个我个人习惯的 我首先创建了一个login包

    image.png
    app\login_init_.py代码:
    # coding:utf-8
    from flask import Blueprint
    
    login = Blueprint('login', __name__,)
    
    from app.login import views
    

    在这里就用到了我说的Blueprint来布置处理的问题了
    Blueprint其实本身只是对view上的接口进行了注册,然后整体挂载在app上,Blueprint本身的目的就是组织多模块的平行共存,避免直接在app上注册view,其实更多的只是方便开发和代码的维护,因为最终所有的views上的接口都仍然是直接挂载在app上,其实对应整个应用来说,没有什么明显的区别。

    Flask 中的Blueprint不是一个可插拨的应用,因为它不是一个真正的应用,而是一套可以注册 在应用中的操作,并且可以注册多次。

    同时在这里,我们不能使用多个flask对象来管理和注册,因为这样会导致每个flask对象都有一个自己的配置,不好管理。

    使用Blueprint,应用会在Flask层中进行管理,共享配置,通过注册按需改变应用 对象。Blueprint的缺点是一旦应用被创建后,只有销毁整个应用对象才能注销lueprint。

    综合以上,简单来说,Blueprint就是通过url找到view的一套机制,并没有太过于复杂的逻辑。
    多的不说...来看login\views.py代码:

    # coding: utf-8
    from app.login import login
    import json
    user_data = [
        {
            'id': 1,
            'name': '张三',
            'age': 23
        },
        {
            'id': 2,
            'name': '李四',
            'age': 24
        }
    ]
    
    @login.route('/index', methods=['GET', ])
    def index():
        data = {
            'status': 'success',
            'users': user_data
        }
        return json.dumps(data, ensure_ascii=False, indent=1)
    

    最终效果:


    image.png
    image.png

    相关文章

      网友评论

          本文标题:(二)Flask-Blueprint 搭建工程

          本文链接:https://www.haomeiwen.com/subject/rjrvyftx.html