python dialect='excel'是什么意思_基础入门_Python-模块和包.深入SQLAlchemy之列级别约束与表级别约束?...

简单介绍:

说明: 此模块主要用于将关系型数据库表映射到PY的类,行映射到PY类的实例,列映射为PY实例的属性,由于其兼容众多DB-API及扩展,SO可以优先考虑数据模型,而忽略底层的DB-API切换,数据迁移更方便.

快速安装:pip install --upgrade SQLAlchemy

创建引擎:

1. 连接数据库前需创建引擎,作为执行SQL的接口,其实底层通过Pool(连接池)和Dialect(翻译器)将映射后的PY语句转换为对应DB-API支持的原生SQL语句去执行,这样写PY时就不用关注后端的数据库

2. 只有在连接被依赖而被动调用时才会建立Pool,否则创建引擎默认只会创建Dialect翻译器,简单的说Engine与后端Database创建的连接总是惰性被动创建的

wKioL1gbU3aDmPJdAABcUHRg_lc191.png

# 连接字符串#!/usr/bin/env python

# -*- coding: utf-8 -*-

"""

#

# Authors: limanman

# OsChina: http://xmdevops.blog.51cto.com/

# Purpose:

#

"""

# 说明: 导入公共模块

from sqlalchemy import create_engine

# 说明: 导入其它模块

if __name__ == '__main__':

"""

sqlite:///data.db : 相对当前目录查找

sqlite:var/run/data.db : 绝对/var/run下查找

sqlite:///C:\\Users\\Administrator\data.db : 绝对C:\\Users\\Administrator下查找

"""

engine = create_engine('sqlite:///data.db', echo=True)

# 注意: 为了避免乱码charset=utf8强制设置

engine = create_engine('mysql://username:password@hostname:hostport/'

'database?charset=utf8', echo=True, pool_recycle=3600)

说明: 如上以两个常用的数据库为例,创建引擎时参数echo=True则表示打印处理过程,默认MySQL连接闲置超过8小时会会自动关闭,pool_recycle=3600缩短时间到1小时,连接池会自动清理闲置连接

追本溯源:

说明: 转到sqlalchemy包__init__.py文件,可以看到默认导入了虽有核心支持的.sql/.types/.schema,所以我们完全可以在代码中直接通过from sqlalchemy import ...,...,...导入,而且转到对应的定义处有非常详细的使用场景以及使用案例演示..sqlalias,all_,and_,any_,asc,between,bindparam,case,cast,collate,column,delete,desc,distinct,ex

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值