장고+부트스트랩 파이썬 웹 개발의 정석 - 5

FitYourEarPlug 개발을 위해 공부한 책 내용 정리입니다. 제가 모르는 부분만 적었어요. 18장. 기타 편의 기능 구현하기 19장. 대문 페이지와 자기소개 페이지 완성하기 20장. 도커로 이사 준비하기 도커: 문서프로그램의 “폰트 포함 저장” 기능과 유사(= 의존성 있는 파일들을 포함하여 다른 환경에서 실행가능) 21장. Amazone Lightsail에 배포하기 let’s encrypt 인증서 발행 시, 방화벽에 80포트를 허용해놔야 하고 웹서버(nginx)를 up 시킨상태로 진행해야 함. 22장. 도메인 연결하기 끝. ...

7월 24, 2022 · Jaejin Jang

Package libffi was not found in the pkg-config search path

Package libffi was not found in the pkg-config search path 본인 개발 환경에서는 docker-compose build시 아무런 문제가 없는데, 막상 가상서버에서 docker-compose build를 하면 cffi 빌드 문제가 발생하는 경우가 있습니다. 에러 메시지는 아래와 같습니다. debug log 1 2 3 4 5 6 7 8 9 10 11 12 13 #11 10.05 Building wheels for collected packages: cffi #11 10.05 Building wheel for cffi (setup.py): started #11 10.05 Building wheel for cffi (setup.py): finished with status 'error' #11 10.05 ERROR: Command errored out with exit status 1: #11 10.05 command: /usr/local/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-lt5a4gm7/cffi_f02ff5d2648d42c398bfaa5f9587d9a1/setup.py'"'"'; __file__='"'"'/tmp/pip-install-lt5a4gm7/cffi_f02ff5d2648d42c398bfaa5f9587d9a1/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-m5z8su85 #11 10.05 cwd: /tmp/pip-install-lt5a4gm7/cffi_f02ff5d2648d42c398bfaa5f9587d9a1/ #11 10.05 Complete output (58 lines): #11 10.05 Package libffi was not found in the pkg-config search path. #11 10.05 Perhaps you should add the directory containing `libffi.pc' #11 10.05 to the PKG_CONFIG_PATH environment variable #11 10.05 Package 'libffi', required by 'virtual:world', not found #11 10.05 Package libffi was not found in the pkg-config search path. #11 10.05 Perhaps you should add the directory containing `libffi.pc' 해결 가상 서버에는 libffi-dev가 설치되어 있지 않아서 그렇습니다. Dockerfile 패키지 설치작업에 libffi-dev 를 추가하면 해결됩니다. 1 RUN apk add postgresql-dev gcc python3-dev musl-dev zlib-dev jpeg-dev libffi-dev

7월 4, 2022 · Jaejin Jang

pkg-resources==0.0.0 not found 해결하기

pkg-resources==0.0.0 파이썬 패키지 관리를 위해 freeze를 이용하여 requirements.txt를 만들고 이 파일을 이용해 패키지를 설치하다 보면 만나게 되는 이슈입니다. 보통 아래와 같은 명령어 실행중에 만나게 되겠죠? 1 2 $ pip freeze > requirements.txt $ pip install -r requirements.txt debug log 1 2 Could not find a version that satisfies the requirement pkg-resources==0.0.0 (from -r requirements.txt (line 24)) (from versions: ) No matching distribution found for pkg-resources==0.0.0 (from -r requirements.txt (line 24)) 해결 원인을 찾아보고자 pkg-resources==0.0.0 의 용도가 무엇인지 찾아봤는데, 그냥 버그라네요;; askubuntu 링크 무튼 그냥 패키지에서 제거하셔도 무방합니다. 1 $ pip uninstall pkg-resources==0.0.0

7월 4, 2022 · Jaejin Jang

장고+부트스트랩 파이썬 웹 개발의 정석 - 4

FitYourEarPlug 개발을 위해 공부한 책 내용 정리입니다. 제가 모르는 부분만 적었어요. 11장. 다대다 관계 구현하기 ManyToManyField를 사용한다. 기본적으로 null=Ture가 설정되어 있다. 15장. 폼으로 포스트 작성과 수정기능 구현하기 웹 개발에서는 입력 빈 칸을 폼(form)이라고 한다. CreateView을 사용하면 xxx_form.html 템플릿을 찾는다. 장고는 태그의 action 속성(입력한 데이터를 전송할 url 설정)을 설정하지 않아도 알아서 처리해 준다. 로그인안 사용자에게만 허용하려면 LoginRequiredMixin 클래스 사용 UserPassesTestMixin 클래스를 사용하여 유저의 속성을 확인하는 메소드를 사용할 수 있다. 16장. 외부 라이브러리를 블로그에 활용하기 django-xxx 형태의 패키지를 찾아서 사용하면됨 17장. 폼으로 댓글 기능 구현하기 url 뒤에 #comment-1 과 같이 표기하면 해당 id의 요소로 바로 링크 가능

6월 26, 2022 · Jaejin Jang

장고+부트스트랩 파이썬 웹 개발의 정석 - 3

FitYourEarPlug 개발을 위해 공부한 책 내용 정리입니다. 제가 모르는 부분만 적었어요. 11장. 테스트 주도 개발 적용하기 12장. 템플릿 모듈화하기 13장. 다대일 관계 구현하기 SlugField 사람이 읽을 수 있는 텍스트로 고유 URL을 만들고 싶을 때 사용한다. ForeignKey로 연결되어 있는 레코드를 불러 올 수 있다. 모델명을 소문자로 쓰고 뒤에 _set을 붙이는게 기본 설정이다.

6월 18, 2022 · Jaejin Jang

장고+부트스트랩 파이썬 웹 개발의 정석 - 2

FitYourEarPlug 개발을 위해 공부한 책 내용 정리입니다. 제가 모르는 부분만 적었어요. 8장. 웹 페이지 만들기 9장. 정적 파일과 미디어 파일 관리하기 10장. 페이지 구성 개선하기 장고의 모델을 만들면 기본적으로 pk 필드가 만들어 진다. 일반적인 기능 개발이라면 CBV 방식을 추천한다. ListView는 모델명 뒤에 ‘_list’가 붙은 html 파일을 기본 템플릿으로 사용한다. 장고 templates 폴더의 html 파일은 정적인 파일이 아니다. Pillow: 파이썬 이미지 처리 라이브러리

6월 11, 2022 · Jaejin Jang

장고+부트스트랩 파이썬 웹 개발의 정석 - 1

FitYourEarPlug 개발을 위해 공부한 책 내용 정리입니다. 제가 모르는 부분만 적었어요. 1장. 왜 이 책을 읽어야 하나요? 2장. 웹 개발 준비하기 3장. 웹 프런트엔드 기초 다지기 4장. 부트스트랩 적용하기 5장. 장고의 역할 이해하기 6장. 장고 프로젝트 만들기 7장. 장고 프로젝트에서 앱 개발하기 HTML html에서 사용하는 기능은 태그를 의미하고 속성은 태그안의 속성을 의미. 스타일은 태그 개별로 속성을 설정할 수도 있고, 태그 자체에 설정할 수도 있음. 하나의 웹사이트를 만드는 경우 일관된 디자인을 적용할 텐데 하나의 html 파일 내에서는 태그에 스타일을 설정하면 되지만 파일이 여러개인 경우는 스타일을 복사, 붙여넣기 해가며 관리하는 것은 비효율적이다. 그래서 CSS를 사용한다. CSS는 웹 문선의 디자인을 구현하기 위한 언어이다. CSS 하나만 관리하면 웹사이트 전체 디자인을 제어할 수 있다. 1 2 <hr/> - 수평선 태그 <span> - 별 기능 없음, div와 비슷 부트스트랩 웹 개발에 사용되는 구성요소들을 미리 디자인 해놓은 툴킷 템플릿을 다운 받은 후 index.html 등의 소스코드를 복사하여 필요한 기능을 가져다 쓰면 된다. 다양한 컴포넌트 등을 검색하하여 복붙해서 쓰면 된다. CDN(Contents Delivery Network) 장고 동작 구조 (출처 https://lazy-cloud.tistory.com/95) MTV(Model, Template, View) 패턴 대문 페이지 = Landing Page 모델 변경하면 Migration 해줘야함

6월 10, 2022 · Jaejin Jang

파이썬으로 쿠팡 파트너스 API 활용하기 - 3 네이버 블로그 API로 글올리기

이력 2020.02.02 포스팅 안녕하세요. 많이 늦었죠? ㅎㅎ, 쓰기가 너무 귀찮아요..ㅋㅋ 사실 요즘에는 쿠팡 상품도 안올리고 있어요. 귀찬쓰.. 아무튼 오늘도 시작하겠습니다. 과정이 길게 느껴질수도 있는데, 어렵지는 않아요. 하나하나 따라 하시면 금방하실 수 있어요. ...

2월 2, 2020 · Jaejin Jang

파이썬으로 쿠팡 파트너스 API 활용하기 - 2 상품 이미지 가져오기

안녕하세요. 저번 시간에 파트너스 API를 통해서 상품정보를 가져오는 것까지 했습니다. 오늘은 쿠팡에 있는 상품 이미지 가져오는 방법에 대해서 설명하겠습니다. API를 호출해 가져온 상품정보에 접속할 수 있는 URL이 있었는데요. 그 URL를 통해 상품페이지로 접속해서 이미지를 가져올꺼에요. 오늘꺼 조금 깁니다… ...

1월 1, 2020 · Jaejin Jang

파이썬으로 쿠팡 파트너스 API 활용하기 - 1

이력 2019.12.30 포스팅 2020.01.01 수정 - API 호출 횟수 설명 추가 안녕하세요. 쿠팡 파트너스 활동을 시작하면서 파이썬으로 쿠팡 파트너스 API, 네이버 블로그 API를 활용하여 포스팅을 자동화 하는 프로그램을 만들었습니다. API 활용이 어려운건 아니지만 확실한 가이드가 될만한 포스트가 없어서 적어보려고 합니다. 이 포스팅 시리즈가 끝날때면 기본적인 UI를 갖춘 자동화 프로그램을 완성하는 것을 목표로 하고있습니다. ...

12월 30, 2019 · Jaejin Jang