zoukankan      html  css  js  c++  java
  • flask-sqlalchemy

    一、安装

    pip3 install -i https://pypi.douban.com/simple flask-sqlalchemy

    二、使用(文件结构blueprint)

    1、__init__.py

    # 导入并实例化SQLAlchemy
    from flask_sqlalchemy import SQLAlchemy
    db = SQLAlchemy()

    注意:a.SQLAlchemy的实例化必须在导入蓝图之前

          b.必须导入models.py --->储存ORM类

    2、models.py

    a.导入db

    b.类必须继承db.Model

    3、__init__.py中的create_app()方法中初始化

    db.init_app(app)

    4、在配置文件中配置文件settings.py

    SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:密码@127.0.0.1:3306/数据库?charset=utf8"
    SQLALCHEMY_POOL_SIZE = 10
    SQLALCHEMY_MAX_OVERFLOW = 5
    SQLALCHEMY_TRACK_MODIFICATIONS = False

    5、models.py

    from sqlalchemy import Column
    from sqlalchemy import Integer,String
    from sqlalchemy import create_engine
    from chun import db
    
    
    class Users(db.Model):
        __tablename__ = 'users'
    
        id = Column(Integer, primary_key=True)
        name = Column(String(32), index=True, nullable=False)
        depart_id = Column(Integer)

    6、生成表(app上下文) 忽略,可以通过数据库迁移进行

    离线脚本文件

    from 项目名称 import db,create_app
    
        app = create_app()
        app_ctx = app.app_context() # app_ctx = app/g
        with app_ctx: # __enter__,通过LocalStack放入Local中
            db.create_all() # 调用LocalStack放入Local中获取app,再去app中获取配置

    7、基于ORM的数据操作

    使用的是threding.local

    from flask import Blueprint
    from 项目名称 import db
    from 项目名称 import models
    ind = Blueprint('ind',__name__)
    
    
    @ind.route('/index')
    def index():
        # 使用SQLAlchemy在数据库中插入一条数据
        # db.session.add(models.Users(name='xx',depart_id=1))
        # db.session.commit()
        # db.session.remove()
        # 查看数据
        result = db.session.query(models.Users).all()
        print(result)
        db.session.remove()
    
        return 'Index'
  • 相关阅读:
    grunt in webstorm
    10+ Best Responsive HTML5 AngularJS Templates
    响应式布局
    responsive grid
    responsive layout
    js event bubble and capturing
    Understanding Service Types
    To add private variable to this Javascript literal object
    Centering HTML elements larger than their parents
    java5 新特性
  • 原文地址:https://www.cnblogs.com/wt7018/p/11618756.html
Copyright © 2011-2022 走看看