# coding: utf-8
from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
import cx_Oracle
host= '127.0.0.1'
port= 1521
sid= 'XE'
user='system'
password='Foxconn123'
ip = '127.0.0.1'
port = '1521'
uname = 'system' # 用户名
pwd = 'Foxconn123' # 密码
tnsname = 'XE' # 实例名
dsnStr = cx_Oracle.makedsn(ip, port, service_name=tnsname)
connect_str = "oracle://%s:%s@%s" %(uname, pwd, dsnStr)
engine = create_engine(connect_str, encoding='utf-8')
result = engine.execute('select * from hr."mail"')
for row in result:
print (row)
#
# Base = declarative_base()
#
# class Post(Base):
# __tablename__ = 'mail'
# seq = Column('seq', String, primary_key=True)
# name = Column('name', String)
# mail_to = Column('mail_to', String)
# cc = Column('cc', String)
# bcc = Column('bcc', String)
# url = Column('url', String)
#
# engine = create_engine('oracle://system:Foxconn123@127.0.0.1:1521/XE', echo=True)
# Database= sessionmaker(bind=engine)
#
# if __name__ == '__main__':
# db = Database()
# query = db.query(Post)
# print(query.count())
#
参考
https://blog.csdn.net/AlanGuoo/article/details/88255194
https://www.liaoxuefeng.com/wiki/1016959663602400/1017803857459008