cx_oracle
파이썬에서 oracle DB에 쿼리를 날릴려면 cx_oracle을 설치해야한다.(pip install cx_oracle)
Oracle Service Class
import cx_Oracle
import os
from cx_Oracle import Connection, Cursor
class OracleService:
def __init__(self, query: str):
self.result: list = []
self.cursor: Cursor = self.init_env().cursor()
self.get_result(query)
def init_env(self) -> Connection:
os.environ["NLS_LANG"] = ".AL32UTF8"
dsn_tns = cx_Oracle.makedsn('ip', '1521', service_name='service_name')
return cx_Oracle.connect(user=r'user', password='password', dsn=dsn_tns)
def get_result(self, query) -> None:
self.cursor.execute(query)
dict_temp: dict = {}
for (RPICU, RPTAX, RPALPH, RPDC, RPZ5DEBITAT, RPDL02, RPRMK) in self.cursor:
dict_temp['RPICU'] = RPICU
dict_temp['RPTAX'] = RPTAX.strip()
dict_temp['RPALPH'] = RPALPH.strip()
dict_temp['RPDC'] = RPDC.strip()
dict_temp['RPZ5DEBITAT'] = str(RPZ5DEBITAT).strip()
dict_temp['RPDL02'] = RPDL02.strip()
dict_temp['RPRMK'] = RPRMK.strip()
self.result.append(dict_temp)
1. 간단하게 init_env 메서드를 활용해서 Connection을 만든다.
- os.envrion을 지정해줘야 한글이 깨지지 않는다.
2. get_result 메서드를 이용해서 쿼리를 날리고 결과를 result에 담는다.
너무 심플하다.
Django HttpResponse
query = "select * from 오라클 TABLE"
service = OracleService(query)
return HttpResponse(content=json.dumps(service.result), content_type='application/json')
1. django에서 httpResponse를 날릴때 json.dumps를 이용해서 json 데이터로 response를 보낼 수 있도록하자.
'python' 카테고리의 다른 글
파이썬 데코레이터 패턴으로 코드 깔끔하게 정리하기 (0) | 2024.03.19 |
---|---|
파이썬 데코레이터 활용(로깅) (1) | 2021.09.02 |
python super (0) | 2019.12.26 |
python 메모리 관리(memory allocation) (4) | 2019.11.15 |
클래스 관계 IS-A 상속 (0) | 2019.11.07 |