python Sqlalchemy簡易教程

2021-09-27 07:24:43 字數 2654 閱讀 2777

1.使用sqlalchemy時候也遇到很多坑.記錄下來,也讓大家少走彎路.

2.sqlalchemy的orm,真的是很好用,但是對於大型專案,使用很多表,不知道有什麼更好的方式來處理,因為我本人接觸爬蟲專案較多,如果有更好的使用方式,希望能分享一下.

方式1, 使用raw sql;

engine = create_engine('mysql+pymysql:') 

engine = create_engine("mysql+pymysql://data_center:[email protected]:3307/data_center", pool_size=10, connect_args=)

result = engine.execute('select * from stock_basics where pe < %s', 2)

# sqlalchemy推薦使用text()函式封裝一下sql字串,不同資料庫, 可以使用統一的sql引數傳遞寫法. 引數須以:號引出.

result = engine.execute(text('select * from stock_basics where pe < :pe'), )

ans = result.fetchall() # 獲取所有資料

ans1 = pd.dataframe(ans) # 將資料轉成 dataframe格式

方式2, sql expression用法
from sqlalchemy import *

db = create_engine('mysql:', echo=false)

conn = db.connect()

metadata = metadata(db)

def add():

table = table('t_email', metadata, autoload=true)

i = table.insert()

conn.execute(i, user=u"李松", email="[email protected]")

方式3, 使用orm.

1.第一種寫法

from sqlalchemy import *

from sqlalchemy.ext.declarative import declarative_base

from sqlalchemy.orm import sessionmaker

# 初始化資料庫連線:

db = create_engine("mysql+pymysql://%s:%s@%s/%s" % ('bitone_pro_datasource', 'bitone123.bitone_pro_datasource=', 'bitone.cbcikiouxoi5.ap-northeast-1.rds.amazonaws.com:3306', 'bitone_pro_datasource'),

pool_size=3, pool_recycle=5, connect_args=)

# 建立物件基類:

base = declarative_base()

# 建立dbsession型別:

dbsession = sessionmaker(bind=db)

session = dbsession()

# 定義類

class user(base):

__tablename__="t_user"

id = column(int, primary_key=true, autoincrement=true)

name = column(string(255), nullable=false)

gender = column(string(1), nullable=false, default='f')

age = column(int, nullable=false, default=0)

user = user(name="selena", gender="m", age=32)

session.add(user)

session.commit()

session.close()

2.第二種寫法

from sqlalchemy import *

db = create_engine('mysql://root:admin@localhost:3306/test?charset=utf8', echo=true)

metadata = metadata(db)

user_table = table('t_user', metadata, autoload=true)

class user(object):

pass

# 對映

dbsession = sessionmaker(bind=db)

session = dbsession()

user = user()

user.name = 'ellen'

user.gender = 'm'

user.age = 38

session.add(user)

session.commit()

session.close()

關閉連線

conn.dispose()

Elasticsearch集群部署簡易教程

192.168.250.128 192.168.250.129 192.168.250.130 解壓到安裝目錄 建立乙個es啟動使用者,因為不能用root來啟動,這裡就建乙個叫 elastic 的使用者 adduser elastic passwd elastic 輸入密碼,兩次 改變elastic...

python sqlalchemy程式設計基礎

概念 大家聽不懂很正常 sqlalchemy是python的乙個框架,是python用來運算元據庫的一種框架,給開發者操作sql提供的強大功能和靈活性 declarative base類維持了乙個從類到表的關係,通常乙個應用使用乙個base例項,所有實體類都應該繼承此類物件 的執行的前提 必須提前進...

Python sqlalchemy小白筆記

本來我用的pymysql的方式進行資料庫操作的。請參考 由於工作原因,組內建議用sqlalchemy。所以又開始學習sqlalchemy的使用。本人以連線mysql為例 sqlalchemy 庫是 mike bayer 在 2005 年建立的,現在大大小小很多公司都在使用它。事實上,許多公司都把 s...