※ django 3.2 기준으로 작성된 글입니다.
django에서 pymysql말고 raw 쿼리를 작성할 수 있는 방법이 있습니다. 바로 django.db의 connection을 사용하는 것 입니다.
from django.db import connection
그렇다면 connection을 사용해야할 때는 언제일까요?
😩저 같은 경우 프로젝트에서 테이블이 동적으로 늘어나야 되고, 늘어난 테이블을 실시간으로 사용이 가능해야 하기 때문에 사용했습니다.
1. DDL을 사용해야할때
- e.g. CREATE, ALTER, etc..
2. DML을 사용할 때
- e.g. SELECT * FROM {index}_table_name
그럼 본격적으로 사용해보도록 하겠습니다.
1. DDL
from django.db import connection
# 첫번째 방법
cursor = connection.cursor()
cursor.execute("CREATE TABLE NameTable(name varchar(255));")
cursor.close()
# 두번째 방법
with connection.cursor() as cursor:
selectSQL = 'SELECT * FROM NameTable'
cursor.execute(selectSQL)
2. DML
- fetchone(): 쿼리 결과를 하나의 리스트안에 담아서 반환합니다. -> []
- fetchall(): 쿼리 전체 결과를 하나씩 리스트에 담고 전체 리스트를 반환 -> [[], [], [], [] ...]
- *cursor.lastrowid: 가장 최근에 사용했던 값의 id를 가져옵니다.
'Python > Django' 카테고리의 다른 글
[Django] django에서 데이터 받기 (0) | 2022.09.13 |
---|---|
[django] class-based view, csrf (0) | 2022.03.14 |
[Django] django.core serializers VS drf serializers 차이점 (0) | 2022.03.08 |
[Django] Django 소개 (0) | 2022.02.08 |