添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

dialect:数据库类型
driver:数据库驱动选择
username:数据库用户名
password: 用户密码
host:服务器地址
port:端口
database:数据库

PostgreSQL

default
engine = create_engine('postgresql://scott:tiger@localhost/mydatabase')

psycopg2

engine = create_engine('postgresql+psycopg2://scott:tiger@localhost/mydatabase')

pg8000

engine = create_engine('postgresql+pg8000://scott:tiger@localhost/mydatabase')

More notes on connecting to PostgreSQL at PostgreSQL.

MySQL

default
engine = create_engine('mysql://scott:tiger@localhost/foo')

mysql-python

engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')

MySQL-connector-python

engine = create_engine('mysql+mysqlconnector://scott:tiger@localhost/foo')

OurSQL

engine = create_engine('mysql+oursql://scott:tiger@localhost/foo')

More notes on connecting to MySQL at MySQL.

Oracle

engine = create_engine('oracle://scott:tiger@127.0.0.1:1521/sidname')
engine = create_engine('oracle+cx_oracle://scott:tiger@tnsname')

More notes on connecting to Oracle at Oracle.

Microsoft SQL Server

engine = create_engine('mssql+pyodbc://scott:tiger@mydsn')

pymssql

engine = create_engine('mssql+pymssql://scott:tiger@hostname:port/dbname')

SQLite

engine = create_engine('sqlite:///foo.db')
engine = create_engine('sqlite:absolute/path/to/foo.db')
  • 下面mysql作为例子
yconnect = create_engine('mysql+mysqldb://root:password@host:port/db?charset=utf8')  
pd.io.sql.to_sql(DataResultDF,'tablename', yconnect, schema='db', if_exists='append')   
  • 创建表结构

使用 Schema Type/SQL Expression Language/Engine/ConnectionPooling/Dialect 进行数据库操作。Engine使用Schema Type创建一个特定的结构对象,之后通过SQL Expression Language将该对象转换成SQL语句,然后通过 ConnectionPooling 连接数据库,再然后通过 Dialect 执行SQL,并获取结果。

from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData, ForeignKey
import MySQLdb
#创建数据库连接
engine = create_engine("mysql+mysqldb://liuyao:liuyao@121.42.195.15:3306/db_name", max_overflow=5)
# 获取元数据
metadata = MetaData()
# 定义表
user = Table('user', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String(20)),
color = Table('color', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String(20)),
#将dataframe 添加到 tmp_formidinfo 如果表存在就添加,不存在创建并添加 
pd.io.sql.to_sql(DataResultDF,'tmp_formidinfo',engine, schema='db_name', if_exists='append')                
# 执行sql语句
engine.execute(
    "INSERT INTO db_name.color(id, name) VALUES ('1', 'liuyao');"
result = engine.execute('select * from color')
print(result.fetchall())
-----------------------------------------------------------------------------------
sql = 'select * from customer2018;'
df = pd.read_sql_query(sql, engine)
# read_sql_query的两个参数: sql语句, 数据库连接
df = pd.read_sql_query(sql, engine)
print(df)

create_engine 还有很多可选参数,这里介绍几个重要的参数

engine=create_engine('mysql://user:password@localhost:3306/test?charset=utf8mb4',
echo=False,pool_size=100,pool_recycle=3600,pool_pre_ping=True)
  • echo :为 True 时候会把sql语句打印出来,当然,你可以通过配置logger来控制输出,这里不做讨论。
  • pool_size: 是连接池的大小,默认为5个,0表示连接数无限制
  • pool_recycle: MySQL 默认情况下如果一个连接8小时内容没有任何动作(查询请求)就会自动断开链接,出现 MySQL has gone away的错误。设置了 pool_recycle 后 SQLAlchemy 就会在指定时间内回收连接。如果设置为3600 就表示 1小时后该连接会被自动回收。
  • pool_pre_ping : 这是1.2新增的参数,如果值为True,那么每次从连接池中拿连接的时候,都会向数据库发送一个类似 select 1 的测试查询语句来判断服务器是否正常运行。当该连接出现 disconnect 的情况时,该连接连同pool中的其它连接都会被回收。

参考:https://blog.csdn.net/P01114245/article/details/89918197
https://www.jianshu.com/p/f039da1d90ce
https://www.jb51.net/article/164591.htm

用法engine = create_engine('dialect+driver://username:password@host:port/database')dialect:数据库类型driver:数据库驱动选择username:数据库用户名password: 用户密码host:服务器地址port:端口database:数据库PostgreSQLdefaultengine = create_engine('postgresql://scott:tiger@localhost/
python sqlalchemycreate_engine语法用法 示例:注意['mysql+pymysql://root:123456@localhost:3306/python_db']书写格式不要随意加空格在engine = create_engine('mysql+pymysql://root:123456@localhost:3306/python_db') 参数解释: dialect -- 数据库类型 driver -- 数据库驱动选择 username -- 数据库用户名.
用时 sqlalchemy与 Pandas read_sql_query(query, con)方法,它将创建一个 SQLDatabase具有属性的对象 connectable至 self.connectable.execute(query) .和 SQLDatabase.connectable被初始化为 con只要it is an instance of sqlalchemy.engine.Connectable (即 Engine and Connection )。 案例一:路过时Engine对象为
sqlalchemycreate_engine和session 实质上,一个O/R Mapping会为你生成DAL。(即为数据访问层(Data Access Layer)。其功能主要是负责数据库的访问。)用O/R Mapping保存,删除,读取对象,O/R Mapping负责生成SQL,你只需要关心对象就好。 一般的ORM包括以下四部分: 一个对持久类对象进行CRUD操作的API;/...
1.    sqlalchemy.__version__ 获取版本号 2.    create_engine 用来创建一个数据库连接,其参数分别为’类型://root/password/地址.此方法返回的一个Engine实例,此时不会主动连接数据库,而回在执行命令的时候去尝试连接。如engine1.execute()或者engine1.connect(). 3.    创建一个声明基类,用来定
# pip install mysqlclient # df = pd.read_sql(db_to_df_sql_list[i],con=mysql_conn) def cur_sql(sql_str,mysql_conn): mysql_conn=connect_mysql() cur =mysql_co engine = create_engine('dialect+driver://username:password@host:port/database') dialect -- 数据库类型 driver -- 数据库驱动选择 username -- 数据库用户名 password -- 用户密码 host 服务器地址 port 端口 database 数据库 from sqlalchemy import create_engine from sqlalchemy import String,Integer,Column,select,ForeignKey from sqlalchemy.orm import sessionmaker,relationship from sqlalchemy.ext.declarative import dec
[1035]xposed框架未安装xposed模块未激活怎么办(Could not load available ZIP files.Pull down to try again) dsaddrd: 一样 压根就没有这个文件夹 [1113]IDEA maven 依赖无法自动导包javax.servlet.jsp-api的问题 m0_53101279: 感觉啥也没说 [1035]xposed框架未安装xposed模块未激活怎么办(Could not load available ZIP files.Pull down to try again) m0_70692814: xposed的压缩包解压后为啥没有system文件夹表情包 [429]python下安装mayavi 卸载重新安装一遍