goodthings4me.tistory.com
파이썬 장고를 사용해서 특정 데이터의 테이블을 만들고 데이터를 넣은 후 웹에서 간단하게 조회하는 기능을 만들면서 데이터베이스와 테이블에 접근할 수 있는 방법(장고의 파일(.py)에서 코딩으로 직접 접속)을 알게 되어 활용 후 정리함
장고(Django)에서 sqlite3에 직접 접근하는 파일 만들기
- 아래와 같이 관련 모듈을 import 하면 장고 내에서 Models 클래스로 만든 sqlite3 DB와 table을 사용할 수 있다.
- 단, 이때 사용하는 쿼리문은 장고 템플릿 문법이다.
- 모델 클래스에서 속성(컬럼) 추가 후 migrate 하고, 관련 컬럼을 update 시키려고 할 때 유용할 것으로 생각된다.(모델 클래스 속성(컬럼) 추가 후 1번 선택 후 >>> 에서 0 입력하고 업데이트 진행 시)
※ 아래 예시에서,
장고의 models.py에서 Model 클래스 이름은 Jusotb이며, 속성(table 컬럼)은 sido, sigungu, dong, bldname으로 했다.
[파이썬 소스 코드]
## 사용해야 할 모듈을 import 한다.
## 아래 4개 코드는 필수!! (*config.settings에서 config는 프로젝트 내 config 폴더)
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings")
import django
django.setup()
from jusodata.models import Jusotb
from django.db.models import Q
# juso_list = Jusotb.objects.filter(Q(sido = '서울특별시') & Q(dong = '성북동') & Q(bldname = '서울아파트'))
# juso_list = Jusotb.objects.filter(bldname="서울아파트")
juso_list = Jusotb.objects.all()
juso_list_cnt = juso_list.count()
print(type(juso_list), juso_list_cnt)
cnt = 10000001 # 관리번호 시작번호
idx = 1 # id count
for row in juso_list:
apt_no = 'a' + str(cnt)
Jusotb.objects.filter(id=idx).update(aptno=apt_no)
# 업데이트 쿼리문 예시) Jusotb.objects.filter(id=3072412).update(aptno='10')
# print(row.id, row.bldname, row.aptno)
cnt += 1
idx += 1
print(f'cnt:{cnt} / idx: {idx}')
# if cnt == 10001000: # 테스트로 1000개만 실행
# break
▶ 실제 코딩 중에 관리번호 필드를 추가(문자+숫자인 A10000001) 후에 생각해보니 해당 db 테이블의 컬럼에 Row를 추가할 때마다 +1 증가시켜야 하는 문제가 있었다.
def jusodata_write(request):
juso = Jusogokr.objects.last() # 맨 마지막 Row. 맨 처음은 objects.first()
print(juso.mng_no) # 관리번호 마지막 번호
manage_no = ''
if juso:
manage_no = 'a' + str(int(juso.mng_no[1:]) + 1)
# a10000001 slice 후 +1 하고 다시 문자로 결합
else:
manage_no = 'a10000001' # 처음일 경우
if request.method == 'POST':
form = JusoForm(request.POST)
if form.is_valid():
form.save()
return redirect('juso:write')
else:
form = JusoForm()
# for key in form.fields: # form.fields : 컬럼값들임
# print(key)
## 관리번호를 자동으로 +1 증가값으로 form에 전달하기
## 입력할 때 readonly 속성이라서 해당 컬험 속성값을 자동으로 할당해야함
form.fields['mng_no'].widget.attrs['value'] = manage_no
context = {
'form': form
}
return render(request, 'jusodata/jusodata_write.html', context)
블로그 인기글
Windows 10 탐색기 느려지는 증상과 해결하는 방법
잘 작동하던 Windows 10 탐색기가 갑자기 느려지는 증상이 발생했을 때 어떻게 조치를 하는지 구글에서 찾아보니 많은 해결책들이 있었으나 어떤 것이 정확한 해결책인지는 알 수가 없었다. 그래서 해결방법이라고 제시한 것들을 정리해 보았다. 윈도우 탐색기가 느려지는 증상 해결 방법 어느 순간부터 응용프로그램(VS Code 등)에서 폴더 열기나 파일 불러오기를 했을 때 검색 팝업창이 안 뜨거나 열리는 시간이 엄청 느려지는 증상과, 더불어서 탐색기도 실행이 많이 느려지는 증상이 있었다. 기존에 사용하던 VS Code에 openpyxl 설치 후 실행이 느려지는 증상이 발생하더니 윈도우10 탐색기도 느려져서 사용할 수가 없었다. 노트북에 OS(Windows10)를 설치한지 1년이 다 되어가긴 했지만, 1개월 전..
goodthings4me.tistory.com
[국세청] 현금영수증가맹점으로 가입바랍니다. 메시지 해결방법(개인사업자)
▶ 현금영수증 가맹점 가입 메시지를 받고... 온라인 쇼핑몰 사업을 시작하려고 사업자등록증을 발급받고 난 후 얼마 안 있어서 국세청으로부터 어느 시점까지 '현금영수증 가맹점'으로 가입하라는 문자메시지가 받았었다. 그 메시지 기한이 오늘 도래했는데, 인터넷에서 찾아보니 홈택스에서 현금영수증 발급 사업자 신청을 할 수가 있었다. [관련내용] 홈>국세정책/제도>전자(세금)계산서/현금영수증/신용카드>현금영수증∙신용카드>가맹점가입 ▶ 홈택스 사이트에서 신청하는 절차는 다음과 같다. 우선, 홈택스에 로그인을 해야 합니다. 세상이 좋아져서 공인인증서 없이도 손쉽게 간편인증 로그인이 가능하다. 여러 인증방법 중 카카오톡 인증이 가장 편리한 거 같다. 간편인증 로그인 후 상단 '조회/발급' 탭 클릭 후 '현금영수증>현금..
goodthings4me.tistory.com
유튜브 영상 등의 URL 주소를 QR코드로 만들기
네이버 QR코드, makeQR, MUST QRcode, 무료 온라인 QRCode 생성기 등의 웹사이트에서 유튜브 영상 등의 URL을 입력하여 QR코드를 만들 수 있다. QR코드를 생성할 수 있는 사이트와 프로그램 URL 주소를 붙여넣기 한 후 "QR 코드 생성" 버튼을 클릭하면 큐알코드가 이미지로 생성되고, 다운로드도 할 수 있는 사이트 https://truedoum.com/useful/qrcode/ # 유튜브에서 동영상 URL을 복사하는 방법 유튜브에서 QR코드를 만들 동영상을 검색한다. 해당 동영상을 클릭한다. 동영상 위에서 마우스 우클릭 후 나오는 팝업창에서 “동영상 URL 복사”를 클릭하거나 영상 하단의 “공유”를 클릭하여 나온 창에서 URL를 복사한다. 아래의 웹사이트 중 하나를 선택한 후 복사..
goodthings4me.tistory.com
'코딩 연습' 카테고리의 다른 글
파이썬 Non-UTF-8 code 에러 또는 Non-ASCII character 에러 (0) | 2022.07.09 |
---|---|
파이썬 sqlite3 db 활용 대용량 데이터 관리가 가능할까 (0) | 2022.06.24 |
짧은 주소(단축URL) 만들기 (0) | 2022.06.21 |
파이썬 장고로 주소록 만들기 [장고 기초 예제] (0) | 2022.06.17 |
웹 브라우저 새로고침(F5) 시 데이터 전송 안 되게 하는 문제 (0) | 2022.06.16 |
댓글