python为什么用flask_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" # 统一该模块下资源请求的前缀

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Flask 蓝图是一种组织 Flask 应用程序的有效方式。它允许您将应用程序分解为可重用的模块,并使应用程序更易于管理和扩展。蓝图可以定义路由、视图、静态文件和模板等 Flask 应用程序中的各种组件。 以下是 Python Flask 蓝图的用法: 1. 创建蓝图 要创建蓝图,您需要使用 Flask 实例的 Blueprint() 函数。Blueprint() 函数需要两个参数:蓝图名称和蓝图文件的位置。 例如,以下代码创建了一个名为 'main' 的蓝图,并将其保存在 main.py 文件中: ``` from flask import Blueprint main_blueprint = Blueprint('main', __name__) ``` 2. 定义路由 要在蓝图中定义路由,您需要使用 Blueprint 对象的 route() 方法。该方法与 Flask 实例的 route() 方法类似。 例如,以下代码在 'main' 蓝图中定义了一个路由: ``` @main_blueprint.route('/') def index(): return 'Hello, World!' ``` 3. 注册蓝图 要在 Flask 应用程序中使用蓝图,您需要将其注册到应用程序中。可以使用 Flask 实例的 register_blueprint() 方法将蓝图注册到应用程序中。 例如,以下代码将 'main' 蓝图注册到 Flask 应用程序中: ``` from flask import Flask from main import main_blueprint app = Flask(__name__) app.register_blueprint(main_blueprint) ``` 4. 使用蓝图的静态文件和模板 蓝图也可以定义其自己的静态文件和模板。要使用蓝图的静态文件和模板,您需要在蓝图的文件夹中创建一个名为 'static' 和 'templates' 的文件夹,并将静态文件和模板放在这些文件夹中。 例如,以下代码显示了如何在蓝图使用静态文件和模板: ``` main_blueprint = Blueprint('main', __name__, template_folder='templates', static_folder='static') @main_blueprint.route('/') def index(): return render_template('index.html') ``` 以上就是 Python Flask 蓝图的用法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值