蓝图

一. 不使用蓝图

目录结构

project_name            # 项目名
    -static             # 静态文件

    -templates          # 模板
        -user.html      # 用户html页面

    -views              # 视图函数
        -__init__.py    # 里面定义了Flask的app对象
        goods.py        # 商品相关视图
        user.py         # 用户相关视图

    app.py              #启动文件

1. views/__ init __.py 文件

一定不要忘记注册文件

from flask import Flask

# 实例化得到对象
''' ★★★ 这里要注册对应的文件 templates 和 static  ★★★'''
app = Flask(__name__, template_folder='../templates', static_folder='../static')

# 配置文件
app.debug = True
app.secret_key = 'jbejfbjsefaejfka'

''' ★★★ 这里将对应的视图函数导入, 为了执行对应的函数 ★★★'''
from . import user
from . import goods

2. app.py 文件 >>> 启动文件

from views import app

if __name__ == '__main__':
    # 启动文件
    app.run()

3. views/user.py 和 views/goods.py 文件

''' user.py '''

from flask import render_template, session
from . import app

@app.route('/user')
def user():
    session['name'] = 'lqz'
    return render_template('user.html')

''' goods.py '''

from . import app

@app.route('/goods')
def goods():
    return 'goods'

二. 使用蓝图

2.1 蓝图小型项目

目录结构

project_name                # 项目名

    -src                    # 项目代码所在路径
        -__init__.py        # app对象创建的地方

        -templates          # 模板
            -user.html

        -static             # 静态文件

        -views              # 视图函数存放位置
            -user.py        # 用户相关视图
            -order.py       # 订单相关视图

    -manage.py              # 启动文件

1 src/__ init __.py 文件

一定不要忘记注册蓝图

from flask import Flask
from .views.user import user_blue

app = Flask(__name__)
app.debug = True

''' 一定不要忘记注册蓝图 '''
app.register_blueprint(user_blue, url_prefix='/user')

2 manage.py 文件 >>> 启动文件

from src import app

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

3. 视图文件 views.py

不是用 app 来装饰函数了, 而是用 蓝图 装饰函数

from flask import Blueprint, render_template

user_blue = Blueprint('user_blue', __name__)

@user_blue.route('/user')
def user():
    return render_template('user.html')

2.1 蓝图大型项目

目录结构

project_name                       # 项目名字
    -src                           # 项目代码所在位置
        -__init__.py               # src的init,falsk,app实例化

        -settings.py               # 配置文件

        -app01                     # 类似于django的admin app
            -__init__.py           # 蓝图初始化

            -template              # 模板
                -backend.html

            -static                # 静态文件
                -xx.jpg

            -views.py              # 视图层

            -models.py             # models层,后期咱们表模型

        -app02
            -__init__.py
            -template
            -static
            -models.py
            -views.py
    -manage.py  # 启动文件

1 src/__ init __.py 文件

from flask import Flask
from .app01 import app01

# 实例化得到app
app = Flask(__name__)

# 注册配置文件
app.config.from_pyfile('settings.py')

# 注册蓝图, url_prefix: 相当于路由分发
app.register_blueprint(app01, url_prefix='/app01')

2 manage.py 文件 >>> 启动文件

from src import app

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

3 src/app01/__ init __.py 文件

1. 生成蓝图
2. 不要忘记将 视图文件 导入进来, 这样才能是使文件正常运行.

from flask import Blueprint

app01 = Blueprint(
    'app01',
    __name__,

'''
   不要忘记注册静态文件, 以及模板文件
'''
    template_folder='templates',
    static_folder='static'
)

'''
   不要忘记导入
'''
from . import views

4 视图文件 views.py

from flask import render_template
from . import app01


@app01.route('/user')
def user():
    return render_template('user.html')

5 html 页面

1. 静态文件访问路径一定要注意, 根据注册蓝图中的 url_prefix='/app01'

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h2>你好啊 又见面了</h2>
<img src="/app03/static/08.png">
</body>
</html>
posted @ 2023-05-17 16:35  codegjj  阅读(2)  评论(0编辑  收藏  举报