SqlAlchemy的使用

SQLAlchemy构建使用

连接池

python语言下的开源软件,提供了SQL工具包即对象映射ORM工具。它可以高效高性能访问数据库设计,
是在flask框架的一个扩展,python社区内应用最广的ORM工具之一。

配置

# 安装
pip install flask-sqlalchemy

# 如果用mysql, 还需安装mysql客户端库
pip install mysqlclient

连接设置

# 创建简单配置信息

app = Flask(__name__)

class Config(object):
	SQLALCHEMY_DATABASE_URI = '数据库连接信息'
	SQLALCHEMY_TRACK_MODIFICATIONS = False		# flask中是否追踪数据修改
	SQLALCHEMY_ECHO = True						# 显示生成的sql语句, 可以用于调试

app.config.from_object(Config)

其他配置参考

SQLALCHEMY_DATABASE_URI			# 用于连接的数据库 URI 。
SQLALCHEMY_BINDS				# 一个映射 binds 到连接 URI 的字典。
SQLALCHEMY_ECHO					# Ture == 记录所有发给 stderr 的语句,打印sql语句
SQLALCHEMY_RECORD_QUERIES		# 可以用于显式地禁用或启用查询记录。
SQLALCHEMY_NATIVE_UNICODE		# 可以用于显式禁用原生 unicode 支持。
SQLALCHEMY_POOL_SIZE			# 数据库连接池的大小。默认是引擎默认值(通常 是 5 )
SQLALCHEMY_POOL_TIMEOUT			# 设定连接池的连接超时时间。默认是 10 。
SQLALCHEMY_POOL_RECYCLE			# 多少秒后自动回收连接。它默认移除闲置多于8小时
'''
这对MySQL是必要的,它默认移除闲置多于 8 小时的连接。注意如果使用了MySQL,Flask-SQLALchemy自动设定这个值为 2 小时。
'''

调用方式

# 创建对象
app = Flask(__name__)
db = SQLAlchemy(app)

# 先有db, 后有app --> init_app
db = SQLAlchemy()
app = Flask(__name__)

db.init_app(app)			# 后加载

# 
with app.app_context():
	User.query.all()

模型类映射构建

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

db = SQLAlchemy(app)

class User(db.Model):							# 继承Model
    """
    用户表映射构建
    """
    __tablename__ = 'user_basic'				# 保证表名、字段名、类型一致

    class STATUS:								# 枚举常量
        ENABLE = 1
        DISABLE = 0
	
    # 格式 --> 名称 = db.Column('数据库字段名', db.字段类型, doc='描述信息')
    # 名称 与 '数据库字段名' 一致时, 可省略
    
    id = db.Column('user_id', db.Integer, primary_key=True, doc='用户ID')
    mobile = db.Column(db.String, doc='手机号')	# 若用迁移, 必加长度String()
    password = db.Column(db.String, doc='密码')	
    name = db.Column('user_name', db.String
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值