
目录
-
一、使用蓝图划分项目目录
- 1.蓝图的介绍
- 2.蓝图的使用
-
二、介绍flask框架的g对象
- 1. g对象是什么?
- 2. 使用代码再次解释g对象
- 1. 引入数据库连接池的概念
一、使用蓝图划分项目目录
1.蓝图的介绍
- 不使用蓝图划分项目目录结构
- 使用蓝图划分小型项目目录结构
- 使用蓝图划分大型项目目录结构
2.蓝图的使用
第一步:在app包的双下init.py文件导入蓝图类并得到实例化对象
from flask import Blueprint
admin_bp = Blueprint('admin', __name__, static_folder='static', template_folder='templates'
from . import views # 这个导入语句不能放到最上面,只能蓝图实例化对象下面放
第二步:在src跟目录的双下init.py文件里面注册蓝图
from flask import Flask
from .admin import admin_bp
app = Flask(__name__
app.config.from_pyfile('settings.py'
app.register_blueprint(admin_bp, url_prefix='/admin'
第三步:在不同的views.py 使用蓝图注册路由
from flask import render_template
from . import admin_bp
@admin_bp.route('/home'
def home(:
return render_template('Admin.html'
最后可以正常访问路由,说明使用蓝图划分目录成功了
二、介绍flask框架的g对象
1. g对象是什么?
- 那么它为什么不学django使用request作为上下文?
- g和session有什么区别?
g 是只针对于当次请求
session针对于多次请求
因为使用request,可能会造成request数据的污染,不小心改了request的属性,但你不知道建议使用g 是空的,放入之后在当次请求中全局优先,以后想在当次请求中,放入一些数据,后面使用,就可以使用g对象。
2. 使用代码再次解释g对象
from flask import g
from . import home_bp
def add(a, b:
print('---', g.name
return a + b
@home_bp.route('/use_g'
def use_g(:
g.name = 'lll'
res = add(1, 2
print(res
return '魔鬼变量g'
三、使用数据库连接池链接数据库
1. 引入数据库连接池的概念
2. 在flask框架中使用数据库连接池的步骤
第一步:安装第三方模块
pip install dbutils
第二步:实例化得到一个池对象
from dbutils.pooled_db import PooledDB
import pymysql
pool = PooledDB(
creator=pymysql,
maxconnections=10,
mincached=2,
maxcached=5,
maxshared=3,
blocking=True,
maxusage=None,
setsession=[],
ping=0,
host='127.0.0.1',
port=3306,
user='luffy',
password='Luffy123?',
database='luffy',
charset='utf8'
第三步:在视图函数中导入使用
import pymysql
from flask import jsonify
from . import user_bp
from . import POOL
@user_bp.route('/list'
def list_info(:
conn = POOL.pool.connection(
cursor = conn.cursor(pymysql.cursors.DictCursor
cursor.execute('SELECT orders,title,image,link,info FROM luffy_banner'
res = cursor.fetchall(
return jsonify(res
最后使用数据库连接池的方式查询数据库成功了