Flask 蓝图

蓝图 

对程序进行目录结构划分

  • 蓝图之中小型系统 

项目结构百度盘  2l7r

目录结构:

├── flasks
    ├── pro_flask        # 项目文件夹(包)        
        ├── statics      # 图片等文件
        ├── templates    # 模板文件夹
        ├── views        # 视图函数文件夹
        └── __init__.py  
    └── manage.py        # 启动文件
  • flasks/manage.py
from pro_flask import app

if __name__ == '__main__':
    app.run()

注意: 
若请求扩展在该文件下书写,那么所有的蓝图都会执行请求扩展
若请求扩展在对应的蓝图下书写,那么只有对应的蓝图才会执行请求扩展
  • pro_flask/__init__.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from flask import Flask

app = Flask(__name__,template_folder='templates',static_folder='statics',static_url_path='/static')

@app.before_request
def before():
    print("我是app里面的befor_request")  
# 可当做是全局配置的函数,每个请求来都会执行该函数

# 将视图中的蓝图对象导入并注册
from .views.login import login_Blue 
app.register_blueprint(login_Blue)
  • pro_flask/views/login.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from flask import Blueprint  # 导入蓝图
from flask import render_template
from flask import request
# 实例化蓝图
login_Blue = Blueprint('login', __name__)  # 注意: 蓝图名和视图函数名不能一样

# 蓝图对象配置路由
@login_Blue.route('/login', methods=['GET', "POST"])
def login():
    print(request.form)
    return render_template('login.html')

补充: 
login_Blue = Blueprint('login', __name__, url_prefix='/xxx')  
实例化蓝图时,这里的url_prefix参数可加可不加
1. 若加该参数, 则该蓝图下的所有路由都要加上url_prefix对应的值才能访问 如: /xxx/login
2. 若不加该参数, 则该蓝图下的所有路由都按默认的方式访问 如: /login
  • pro_flask/templates/login.html
<body>

<h1>用户登录</h1>
<form method="POST">
    <input type="text" name="user"/>
    <input type="submit" value="提交"/>
</form>

<img src="/static/code.png">

<img src="{{ url_for('static',filename='code.png') }}">

</body>
  • 蓝图之大型系统

项目结构百度盘  mhs5

蓝图总结:

在__init__.py中导入蓝图并注册

1 login_Blue = Blueprint('login', name,url_prefix='/xxx') :蓝图URL前缀,url_prefix表示url的前缀,在该蓝图下所有url都加前缀

2 login_Blue = Blueprint('login', name,url_prefix='/xxx',template_folder='tpls'):给当前蓝图单独使用templates,向上查找,当前找不到,会找总templates

3 蓝图的befort_request,对当前蓝图有效

4 大型项目,可以模拟出类似于django中app的概念

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值