Flask框架使用蓝图划分目录/g对象/使用数据库连接池链接数据库

科技资讯 投稿 10300 0 评论

Flask框架使用蓝图划分目录/g对象/使用数据库连接池链接数据库

目录
    一、使用蓝图划分项目目录
    • 1.蓝图的介绍
    • 2.蓝图的使用
  • 二、介绍flask框架的g对象
      1. g对象是什么?
  • 2. 使用代码再次解释g对象
  • 三、使用数据库连接池链接数据库
      1. 引入数据库连接池的概念
  • 2. 在flask框架中使用数据库连接池的步骤
  • 一、使用蓝图划分项目目录

    1.蓝图的介绍

      不使用蓝图划分项目目录结构
    1. 使用蓝图划分小型项目目录结构
    2. 使用蓝图划分大型项目目录结构

    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作为上下文?
      因为使用request,可能会造成request数据的污染,不小心改了request的属性,但你不知道建议使用g 是空的,放入之后在当次请求中全局优先,以后想在当次请求中,放入一些数据,后面使用,就可以使用g对象。
    • g和session有什么区别?
      g 是只针对于当次请求
      session针对于多次请求

    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
    
    

    最后使用数据库连接池的方式查询数据库成功了

    编程笔记 » Flask框架使用蓝图划分目录/g对象/使用数据库连接池链接数据库

    赞同 (59) or 分享 (0)
    游客 发表我的评论   换个身份
    取消评论

    表情
    (0)个小伙伴在吐槽