深入了解Python Flask框架之蓝图

随着Flask项目越来越复杂,把所有视图函数放在一个应用文件中会很不方便我们管理,所以需要对程序进行模块化的处理。Flask内置了一个模块化处理的类——Blueprint蓝图。

Blueprint 是一种组织一组相关视图及其他代码的方式。与把视图及其他代码直接注册到应用的方式不同,蓝图方式是把它们注册到蓝图,然后在工厂函数中把蓝图注册到应用。

简单来说就把app应用分为很多个小模块,把这些小模块放在一个包里,这个包叫做蓝图,如下图所示:

项目目录如下图所示:

这里创建了一个名为apps的包,我们这个包称为蓝图,在这个包中,我们又创建了三个包,那么我们如何把蓝图与app.py联系起来呢。这时我们就要通过init.py初始化文件来把蓝图与app.py。

首先我们在user包中创建一个视图函数文件名为view,代码如下所示:

from flask import Blueprint
user_bp= Blueprint('user',__name__)

首先导入Blueprint包,再通过Blueprint()方法来定义变量user_bp为蓝图对象。

init.py初始化文件代码如下所示:

from flask import Flask
from apps.user.view import user_bp
​
def create_app():
    app=Flask(__name__,template_folder='../templates',static_folder='../static')
​
    #蓝图
    app.register_blueprint(user_bp)
    return app

首先我们导入user中的view对象user_bp,自定义函数create_app()并创建一个app对象,然后通过app.register_blueprint()方法将蓝图对象绑定在app对象上。

注意:由于init.py初始化文件与static静态文件、templates模板文件不在同一级,所以需要重新指定静态文件与模板文件的位置。

接下来编写app.py启动文件,代码如下所示:

from flask import Flask
from apps.user.view import user_bp
​
def create_app():
    app=Flask(__name__,template_folder='../templates',static_folder='../static')
​
    #蓝图
    app.register_blueprint(user_bp)
    return app

代码很简单,直接导入view文件中的create_app并调用create_app()。

这样app.py文件就和蓝图包联系起来了。

注意:上面的文件名、蓝图名、视图函数名都可以是任意的。

那么我们蓝图的视图函数有什么变化呢?

以上面的view视图函数文件为例,其代码内容如下所示:

from flask import Blueprint, request, render_template, redirect
from apps.user.model import User

user_bp= Blueprint('user',__name__)        #蓝图对象

@user_bp.route('/')
def hello():
    return '你好'

与之前的在app.py中写视图函数将比,将之前的@app.route()改为蓝图对象名.route(),其他的就几乎一样。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • python flask框架快速入门

    Flask 本身相当于一个内核,比如可以用 Flask 扩展加入ORM.窗体验证工具,文件上传.身份验证等.Flask 没有默认使用的数据库,你可以选择 MySQL,也可以用 NoSQL. 其 WSGI 工具箱采用 Werkzeug(路由模块),模板引擎则使用 Jinja2.这两个也是 Flask 框架的核心. Flask常用扩展包: Flask-SQLalchemy:操作数据库: Flask-script:插入脚本: Flask-migrate:管理迁移数据库: Flask-Session:S

  • python框架flask知识总结

    一.Flask蓝图目录 我们之前写的Flask项目都是自己组织的目录结构,其实Flask官方有其推荐的目录结构,以下就是一个符合官方推荐的Flask小型应用的项目结构目录示例,如下: 如图,这就是我们建立好的一个目录结构,一层一层的看一下,首先是app目录,它就是我们的主应用程序目录了,其中有一个__init__.py文件,里面的内容如下: app/init.py from flask import Flask from .views.acc import acc_bp from .views.

  • Python中的flask框架详解

    Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务.本文参考自Flask官方文档,大部分代码引用自官方文档. 安装flask 首先我们来安装Flask.最简单的办法就是使用pip. pip install flask 然后打开一个Python文件,输入下面的内容并运行该文件.然后访问localhost:5000,我们应当可以看到浏览器上输出了hello world. from flask import Flask app = Flask(

  • 浅谈Python flask框架

    目录 1. flask 框架概述 1.1flask 框架优势 1.2flask 框架获取 1.3flask 框架使用 2. flask demo步骤 3. flask 基础功能 3.1路由功能 3.2模版提供 4.总结  前言: Python 面向对象的高级编程语言,以其语法简单.免费开源.免编译扩展性高,同时也可以嵌入到C/C++程序和丰富的第三方库,Python运用到大数据分析.人工智能.web后端等应用场景上. Python 目前主要流行的web框架:flask.Django.Tornad

  • python编程Flask框架简单使用教程

    目录 基础知识 使用框架的优点: Flask常用扩展包: 基本格式: 拓展: return 重定向 取网址参数 content-type cookie\session flask路由 request属性 上下文 注册路由 基础知识 使用框架的优点: 稳定性和可扩展性强 可以降低开发难度,提高了开发效率 Flask诞生于2010年,是Armin ronacher用Python语言基于Werkzeug工具箱编写的轻量级Web开发框架 Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件

  • python flask框架详解

    Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务.本文参考自Flask官方文档, 英文不好的同学也可以参考中文文档 1.安装flask pip install flask 2.简单上手 一个最小的 Flask 应用如下: from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World' if __na

  • 深入了解Python Flask框架之蓝图

    目录 随着Flask项目越来越复杂,把所有视图函数放在一个应用文件中会很不方便我们管理,所以需要对程序进行模块化的处理.Flask内置了一个模块化处理的类--Blueprint蓝图. Blueprint 是一种组织一组相关视图及其他代码的方式.与把视图及其他代码直接注册到应用的方式不同,蓝图方式是把它们注册到蓝图,然后在工厂函数中把蓝图注册到应用. 简单来说就把app应用分为很多个小模块,把这些小模块放在一个包里,这个包叫做蓝图,如下图所示: 项目目录如下图所示: 这里创建了一个名为apps的包

  • 深入了解Python Flask框架之蓝图

    随着Flask项目越来越复杂,把所有视图函数放在一个应用文件中会很不方便我们管理,所以需要对程序进行模块化的处理.Flask内置了一个模块化处理的类--Blueprint蓝图. Blueprint 是一种组织一组相关视图及其他代码的方式.与把视图及其他代码直接注册到应用的方式不同,蓝图方式是把它们注册到蓝图,然后在工厂函数中把蓝图注册到应用. 简单来说就把app应用分为很多个小模块,把这些小模块放在一个包里,这个包叫做蓝图,如下图所示: 项目目录如下图所示: 这里创建了一个名为apps的包,我们

  • 详解Python Flask框架的安装及应用

    目录 1.安装 1.1 创建虚拟环境 1.2 进入虚拟环境 1.3 安装 flask 2.上手 2.1 最小 Demo 2.2 基本知识 3.解构官网指导 Demo 3.1 克隆与代码架构分析 3.2 入口文件 init.py 3.3 数据库设置 3.4 蓝图和视图 4.其他 5.跑起 DEMO 1.安装 1.1 创建虚拟环境 mkdir myproject cd myproject python3 -m venv venv 1.2 进入虚拟环境 . venv/bin/activate 1.3

  • Python Flask框架模板操作实例分析

    本文实例讲述了Python Flask框架模板操作.分享给大家供大家参考,具体如下: 模板 在前面的示例中,视图函数的主要作用是生成请求的响应,这是最简单的请求.实际上,视图函数有两个作用:处理业务逻辑和返回响应内容.在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本.本节学到的模板,它的作用即是承担视图函数的另一个作用,即返回响应内容. 模板其实是一个包含响应文本的文件,其中用占位符(变量)表示动态部分,告诉模板引擎其具体值需要从使用的数据中获取.使用真实值替换变量,再返

  • Python Flask框架扩展操作示例

    本文实例讲述了Python Flask框架扩展操作.分享给大家供大家参考,具体如下: 请求上下文(request context) Flask有两大核心:Werkzeug和Jinja2.Werkzeug实现路由.调试和Web服务器网关接口.Jinja2实现了模板. request和response都属于请求上下文对象. 当调用app = Flask(name)的时候,创建了程序应用对象app: request 在每次http请求发生时,WSGI server调用Flask.call():然后在F

  • python flask框架实现传数据到js的方法分析

    本文实例讲述了python flask框架实现传数据到js的方法.分享给大家供大家参考,具体如下: 首先要清楚后台和前端交互所采用的数据格式. 一般选JSON,因为和js完美贴合. 后台返回的数据进行序列化 在/homepageRecommend 路由的 view方法中返回序列化数据 dict = {"a":1, "b":2}<br data-filtered="filtered"> import json json.dumps(di

  • python flask框架实现重定向功能示例

    本文实例讲述了python flask框架实现重定向功能.分享给大家供大家参考,具体如下: flask 重定向: from flask import * app = Flask(__name__) @app.route('/') def index(): return redirect(url_for('login')) @app.route('/login') def login(): return render_template('login.html') if __name__ == '_

  • Python flask框架post接口调用示例

    本文实例讲述了Python flask框架post接口调用.分享给大家供大家参考,具体如下: from flask import Flask,render_template,request app = Flask(__name__) @app.route("/login",methods = ['POST','GET']) def login(): if request.method == "POST": username = request.form.get('u

随机推荐