最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • flask为什么使用蓝图

    正文概述    2020-07-06   265

    flask为什么使用蓝图

    Flask使用蓝图的作用:专门用来对项目进行模块划分,其次可以解决循环导入问题(如@app.route("/"),分模块后都用@app,就会出现循环导入)。

    比如:一个xxx网站,可能用到首页模块、用户模块、后台模块等等。

    在项目开发过程中,需要把项目根据相关的功能划分为对应的模块,通过模块的划分可以更好的组织项目的目录结构,使项目的整个框架更加清晰。

    蓝图引入
        我们尝试将项目中的news视图函数抽离出来作为 news.py  一个单独的模块
        main.py中:
            from flask import Flask
            from news import news
            
            app = Flask(__name__)
    
            @app.route("/")
            def index():
                return "index"
                
            @app.route("/users")
            def users():
                return "users"
    
            if __name__ == "__main__":
                app.run(debug=True)
    
        news.py中:
            from main import app
    
            @app.route("/news")
            def news():
                return "news"

    以上代码运行main.py会报错,ImportError: cannot import name ‘news’,原因是循环导入问题

    蓝图使用步骤:
        1、创建蓝图(在news.py中)
        from flask import Blueprint
        news_blu = Blueprint("news", __name__)
    
        2、使用蓝图对象注册路由(在news.py中)
        @news_blu.route("/news")
        def news():
            return "news3"
    
        3、使用app对象注册蓝图(在main.py中)
        from news import news_blu
        app.register_blueprint(news_blu)
    目录形式的蓝图的注意点:
    
        我们将users模块处理成一个users包,包下面有另两个文件__init__.py,和views.py(专门用来存放这个模块的视图函数):   
    
        __init__.py中
        from flask import Blueprint
        users_blu = Blueprint("users", __name__)
    
        from . import views    # 把视图函数抽取到views.py中之后,需要在__init__.py文件中导入视图函数所在的这个view文件
        # ------------------------------------------
        views.py中:
        from . import users_blu
        # 使用蓝图注册路由
        @users_blu.route("/users")
        def users():
            return "users"
        # ------------------------------------------
        main.py 中:
        from users import users_blu
        app.register_blueprint(users_blu)
    注意:from . import xxx 表示从当前文件所在的包中导入xxx模块
    蓝图对象参数设置:
    users_blu = Blueprint(“users”, name,
    static_folder=“static”, # 蓝图中静态文件存储目录
    static_url_path="/users/static", # 访问蓝图中静态文件url地址前缀
    template_folder=“templates”, # 蓝图中模板文件的存储目录
    # url_prefix="/users" # 统一该模块下资源请求的前缀
    )

    起源地下载网 » flask为什么使用蓝图

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元