본문 바로가기

Python

[Django] pywoojin 프로젝트: django에 데이터 저장하기 이젠 내가 만든 서버에 데이터베이스를 만들어볼 것이다. Django에서는 큰 프로젝트를 application(app)이라고 부른다. 지금까지 별도의 app을 만들지 않아고 이제 woojin의 정보를 저장하기 위해 별도의 app을 만들어 작업한다. 1. Model 구성하기 1-1. App 추가 터미널에서 python manage.py startapp woojin 명령어를 작성하면 woojin의 폴더가 생성되고 하위 파일들이 생긴다. app을 생성하면 Django에게 app을 사용할 것이라고 알려줘야 한다. config/settings.py에서 INSTALLED_APPS 리스트에 아래와 같이 추가한다. INSTALLED_APPS = [ "woojin", 'django.contrib.admin', 'djang.. 더보기
[Python] error 문구 설정!! 요청받은 업무중에 스크립트 구동 중에 error가 생기면 해당 파일명을 출력하고 구동을 멈춰달라는 요청을 받았다. 보통은 error를 예외처리하고 에러 파일명만 출력하고 계속 진행하는 경우가 대부분이었다. 그래서 쉬울줄 알았던 문제가 나를 당황시켰다. 처음에는 break 문을 사용하면 멈출 거라 생각했다. 일단 파일명을 출력해야하니 try - except 문을 사용하여 오류가 생겼을시 파일명을 출력하는 문구를 작성하였고 break를 사용하여 멈추려고 했으나 멈추지 않았다.. 왜지?? 그래서 다른 방법을 찾다가 raise 함수를 발견했다. 고의로 에러를 내버리는 함수이다. try: ... except KeyError: raise KeyError(f'KeyError! {file}') 이런식으로 코드를 짜니 .. 더보기
[Django] pywoojin 프로젝트: django가 요청에 응답하게 하기 본격적으로 Django 프로젝트를 시작해보자. 환경설정은 건너뛰고 프로젝트 생성부터 시작한다. 1. Django 설치 및 프로젝트 생성 - PyCharm에서 new project를 선택하여 새로운 프로젝트를 생성한다. 이때 project\venv (가상환경)은 따로 만들지 않아도 자동으로 생성된다. 이후의 실행은 가상환경 터미널에서 진행한다. (venv) C:\Users\... 1-1. Django 설치 pip install 'django 더보기
[Django] Django 입문하기 언젠가 한번 파이썬으로 웹을 만들어보고 싶다는 생각을 했다. 그렇게 미루기만 하다가 회사에서 남는 시간에 Django를 공부해보기로 했다. Django 입문용 책을 찾다가 접하게 된 [이한영의 Django(장고) 입문] 굉장히 따라가기 쉽게 자세히 설명되어 있다. 앞으로 배운 내용을 복습겸 간단하게 적어보고자 한다. 일단 Django가 무엇인지 알아보자. Django란 파이썬으로 작성된 웹 프레임워크이다. 웹 프레임워크는 다양하다. javascript, fastAPI, Flask 등등.. 많은 웹 프레임워크들 중에서 Django를 선택한 이유는 음.. 제일 대중적이어서..?? 그리고 많은 기능들도 있다고 하니 배워보고싶은 생각이 들었다. 제일 최근에 나온 fastAPI는 기회가 되면 배워보고싶다. 일단 .. 더보기
[Python] 5월 12일 ISO 감도 찾기 요청받은 작업 중에 JPG 파일의 ISO 감도를 불러와야하는 과정이 있었다. 해당 정보는 이미지파일의 속성에 들어가 [자세히]에서 볼 수 있다. 이것을 python으로 불러와야한다. 방법은 PIL 패키지에 ExifTags를 사용하는 것 . . from PIL import Image, ExifTags img = Image.open("file_name.jpg") exif = { ExifTags.TAGS[k]: v for k, v in img._getexif().items() if k in ExifTags.TAGS } print(exif['ISOSpeedRatings']) ExifTags를 사용하면 문자형태의 속성값으로 불러온다. 이미지의 많은 정보들중 나는 ISO 감도 정보가 필요하여 exif['ISOSpe.. 더보기
[Python] 5월 9일 list의 위대함 class_list = [] for i in class_unique: class_list.append({i : df.loc[df['class'] == i, 'file_name'].values}) class_list에 {'unique' : 'file_name의 values'}를 넣어 [ {'unique' : 'file_name의 values'}, {'unique' : 'file_name의 values'}, ...] 형태로 출력되는 것을 생각했다. 하지만 계속 for문이 한번만 돌고 끝난다. 그래서 df.loc[df['class'] == i, 'file_name'].values의 type을 확인해보니 ndarry 형태였다. 근데 그게 무슨 상관인지는 잘 모르겠다. 여러가지 찾다보니 차원 높은 ndarray .. 더보기