본문 바로가기

728x90
반응형

Python

(100)
Django Template: linebreaks vs linebreaksbr Django에서 테이블의 field가 TextField인 경우, 값을 줄바꿈을 해서 저장하는 경우가 있습니다. 이를 Template으로 불러올때, 저장된 줄바꿈을 반영해주기 위해서는 템플릿에서 불러올때 {{some_text|linkebreaks}} // or {{some_text|linebreaksbr}} 위와 같이 필터를 적용해줘야 줄바꿈을 해줄수 있습니다. 이때 linebreaks와 linebreaksbr의 차이는 linebrekas의 경우 some_text에 한줄마다 태그를 입혀서 줄바꿈을 적용합니다. linebreaksbr의 경우 some_text에 있는 한줄마다 태그로 감싸서 줄바꿈을 적용용 합니다. *실제 예시 {{some_text|linebreaksbr}} {{some_text|linebre..
Python: Selenium in Linux # WSL # chromedriver # 예제 코드 Windows에서는 기존에 selenium을 이용하는 python script가 있는 경로에 chromedriver에 위치해놓고 썼다.Linux, 특히 WSL 환경에서 Selenium을 사용하기 위한 방법을 살펴보자 1. chromedriver linux 용을 설치 - 압축 해제 후 chromedriver를 /usr/local/bin에 옮기자sudo mv /home/usr/chromedriver /usr/local/bin/ * chromedriver 설치만으로 안되는 경우도 있다.이럴 경우 chrome 설치를 함으로써 해결# Download and install Google Chromewget -q -O - https://dl.google.com/linux/linux_signing_key.pub | s..
이중 삼중 for문 break # forloop # break 이중 for문을 한번에 두개를 break 해서 빠져나가야할 경우 Tip 변수값에 변화를 줘서 그 변수값을 기준으로 break for i in list_one: for j in list_two flag = False for h in list_three: if some conditon: print("Break!") flag = True break if flag: break flag = False로 두고 flag = True가 되었을 때 바깥 for문에서 break
Python: 동적으로 변수 이용 # 전역변수, 지역변수, globals(), locals(), importlip, getattr * globals, locals f'{model_name}Form' 위와 같은 형태의 이름 가진 class Form을 동적으로 가져와서 이용하려고 할 때, import를 통해 전역변수에 위 이름을 가진 변수가 있으면 다음과 같이 globals() 사용 가능 globals()[f'{model_name}Form'] globals() 전역변수 접근 locals() 지역변수 접근 globals는 전역변수에 대한 접근 자체가 보안 위험이 있을 수 있으므로 importlib으로 호출을 해서 getattr 을 이용하는게 좀 더 안전한 방법 * importlib import importlib def book_list(request, model_name): form_module = importlib.import_modu..
Django QuerySet, update objects Django filter update MODELS.objects.filter(username="sample").update(last_name="Kim") --> 이런식으로 filter로 가져온 여러 row들을 한번에 update로 변경 가능 별거 아니지만 모르면 forloop 돌면서 수정하고 있을수 있으므로 기억해두자
이미지 수정하기 # 로직 # Django image 수정하는 로직 * 아무것도 넣지 않거나, 기존 이미지 삭제하는 경우 default 이미지 있어야 함 * 변경하지 않고 저장하면 기존 이미지가 유지되어야 함 (수정 X, 삭제 X 인 경우) javascript로 프리뷰로 이미지 변경 - 업로드하면 업로드 된 이미지 - 삭제하면 default 이미지 -> front에서 프리뷰 이미지 src가 default 이미지 경로로 잡혀 있으면 (.includes 등으로 확인) is_default_image 속성을 true 로 건네기 - back에서는 is_default_image 값이 true로 들어오면 이미지 삭제 (또는 default 이미지 넣어주기) -> 프리뷰 이미지 src가 default 이미지 경로가 아닌 경우! 수정을 한 경우와, 업로드 후에 수..
Django DateField, HTML input type date Django의 DateField를 context로 HTML로 넘겼을 때, HTML의 type이 date인 input에서 받기 위해서는 표현방법 변환 필요 Django template에서 date filter tag로 형 변환 {{company.birth|date:'Y-m-d'}}
Python Pandas: read_excel, sheet, DataFrame forloop excel을 pandas로 불러오기: read_excel 특정 sheet를 읽는 옵션: sheet_name df_data = pd.read_excel(file, sheet_name='data') 불러온 값을 type을 찍어보면 DataFrame pandas의 DataFrame을 forloop 돌리기 for index, row in df_data.iterrows(): address = row.get('address') ...

728x90
반응형