蓝图

作者: 小船撑不起大帆 | 来源:发表于2017-11-02 18:28 被阅读0次

1、为使项目结构模块化,更加清晰,把相同模块的视图函数放在同一个蓝图中,同一个文件中

2、创建蓝图
1、新建一个py文件目录,文件名:blueprints
新建py文件(user.py等),放置相同模块的视图函数,
user.py:

from flask import Blueprint
user_bp = Blueprint('user',name)
@user_bp.route('/login',methods=['GET','POST'])
def login():
pass

   2、主app文件注册蓝图
        app.regist_blueprint(蓝图的名称)

         如: app.register_blueprint(user_bp)

注意:
要想在url上也显示出是在同一个模块中,加上一个参数:
url_prefix

如:user_bp = Blueprint('user',name,url_prefix='/user')
这样的话,user下面的登录,注册等视图函数的url就成了
127.0.0.1:5000/user/login
127.0.0.1:5000/user/regist

3、蓝图中模板文件查找

user_bp = Blueprint('user',name,url_prefix='/user',template_folder='usertemp')
template_folder模板文件存放的文件夹(自定义的),相对于当前py文件所在的目录下。没定义的话,默认原项目中的templates文件夹中寻找
顺序是:先项目中默认的template,然后再到自定的模板文件夹中寻找

4、蓝图中静态文件查找
user_bp = Blueprint('user',name,url_prefix='/user',template_folder='usertemp',static_folder='userstatic')

如果想在模板文件中引用蓝图中的静态文件,蓝图名称.static
<link rel="stylesheet" href="{{ url_for('user.static',filename='css/login_regist.css') }}">

不加蓝图名称的话,默认加载原项目中static文件中的静态文件

5、url_for反转
1、要指定蓝图的名称
user_bp = Blueprint('user',name,url_prefix='/user',template_folder='usertemp',static_folder='userstatic')

<ul class="nav navbar-nav navbar-right">
{% if user %}
<li><a href="#">{{ user.username }}</a></li>
<li><a href="{{ url_for('user.logout') }}">注销</a></li>
{% else %}
<li><a href="{{ url_for('user.login') }}">登录</a></li>
<li><a href="{{ url_for('user.regist') }}">注册</a></li>
{% endif %}
注意:即使在同一个蓝图中反转,也要指定
return redirect(url_for('user.login'))

相关文章

  • Unreal4 蓝图总览 0003bate1

    蓝图总览蓝图总览 页面包含蓝图剖析和可用的不同蓝图类型。 蓝图类型 蓝图有数种类型,每种均有其独特用法,包括创建新...

  • Unreal4 蓝图转换范例0008bate1

    蓝图转换范例 使用蓝图转换,从一个蓝图到多个蓝图进行通信。 此页面讲述如何使用蓝图转换与不同的蓝图进行交流并共享信...

  • 2018-02-24蓝图通信

    在关卡蓝图与Actor蓝图之间通信 它们是不同类型的蓝图,需要用蓝图接口来传输数据 从关卡蓝图发送数据到Actor...

  • 蓝图

    蓝图blueprint 定义蓝图 在home和admin目录下init.py中定义蓝图 调用蓝图 在home和ad...

  • flask四、进阶蓝图(Blueprints)项目模块化

    Flask 进阶蓝图(Blueprints)项目模块化 蓝图(Blueprints) ​ Flask使用蓝图的概念...

  • Unreal4蓝图宏库0048bate1

    蓝图宏库 声明和定义宏以便在其他蓝图中重复利用的蓝图。蓝图宏库(Blueprint Macro Library) ...

  • Unreal4蓝图通信用法0030bate1

    蓝图通信用法 蓝图通信不同用法的总览。 使用蓝图时,如需在蓝图之间传递或共享信息,需要使用一种形式的 蓝图通信。可...

  • 蓝图通信的四种方式

    蓝图通信的四种方法: 1直接蓝图通信;2通过事件分配器通信;3使用蓝图接口通信;4使用蓝图投射通信。 1直接蓝图通...

  • Unreal4我的蓝图0022bate1

    我的蓝图 蓝图中节点的层级详解。 我的蓝图(My Blueprint) 选项卡显示了蓝图中图表、脚本、函数、宏等内...

  • Unreal4直接蓝图通信0031bate1

    直接蓝图通信 如何从一个蓝图中使用另一个蓝图的函数、事件和变量。 直接蓝图通信(Direct Blueprint ...

网友评论

      本文标题:蓝图

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