본문 바로가기
관리자

Programming-[Backend]/Django

(56)
Django로 Pinterest 따라 만들기-16. WYSIWYG 적용, 프로젝트 다듬기 1. WYSIWYG WYSIWYG[위지윅]은 What You See Is What You Get의 약자로 텍스트를 작성할 때 Bold, Italic, 글자 크기, color 등을 바꿀 수 있도록 pop-up 형태로 옵션을 제공해주고, text의 style과 관련된 다양한 기능을 제공해주는 라이브러리들을 말한다. 이 강의에서는 medium-editor 라는 라이브러리를 사용한다. github: https://github.com/yabwe/medium-editor 홈페이지: https://yabwe.github.io/medium-editor/ ArticleCreate에 적용 article을 작성할 때 medium-editor가 동작하도록 세팅해본다. 우선 form에서 content 부분에 적용되도록 Arti..
Django로 Pinterest 따라 만들기-15. Subsrcibe, RedirectView, Field Lookup, queryset 1. SubscribeApp 시작 app 시작 및 View 작성 이번에는 어떤 Projecet를 구독할 수 있는 SubscribeApp을 만들어본다. app을 시작하고 기본 View를 만든다. 여기서 적용하는 RedirectView는 View 작업 후 바로 redirect가 일어나도록 해주는 view이다. 구독 후에는 구독 정보 및 버튼 모양만 변경되는 것이지, 별다른 로직이 없기 때문에 RedirectView를 적용한다. @method_decorator(login_required, 'get') class SubscriptionView(RedirectView): def get_redirect_url(self, *args, **kwargs): return reverse('proejctapp:detail',..
Django로 Pinterest 따라 만들기-14. ProjectApp 만들기, MultipleObjectMixin 1. ProjectApp 스스로 만들어보기 여태까지 했던 내용을 바탕으로 스스로 ProjectApp을 만들어본다. 대상 및 요구사항은 아래와 같다. 대상: projectapp - article 들을 담을 수 있는 폴더 같은 개념이다. project:artilce = 1:N 요구사항: - Create, Detail, List View를 만든다. - Create 시 login이 필요하다. - Model의 fields = ['title', 'description', 'image', 'created_at'] 위 사항들을 바탕으로 스스로 만들어본 페이지 사진 새로운 내용들 pagination option 기존에는 a link의 ? 앞에 {% url 'articleapp:list' %} 라는 문구가 있었는데, 이를..
Django로 Pinterest 따라 만들기-13. MobileResponsive Layout 구현 이번 글에서는 Mobile 화면의 Layout에 맞게 조금 수정해본다. 1. 서버 세팅 및 모바일 접속 0.0.0.0:8000 모바일에서 접속이 가능하도록 하기 위해서 0.0.0.0으로 서버를 실행한다. 0.0.0.0 ip로 실행하는 것은, 서버 컴퓨터의 ip주소를 정확히 알 수 없을 때 사용한다고 한다. 물론 ip 주소를 cmd->ipconfig를 통해서 직접 알아내도 된다. 'python manage.py runserver 0.0.0.0:8000' ALLOWED_HOSTS settings.py에서 접속하는 컴퓨터의 ip 허용값을 설정해준다. 리스트에 모든 사용자를 허용한다는 의미로 '*'을 입력해준다. 다만 이것은 컴퓨터와 핸드폰이 네트워크상 같은 공유기에 접속해 있을 때만 허용되는 옵션이라고 한다...
Django로 Pinterest 따라 만들기-12. ListView/Pagination, Mixin, CommentApp 구현 1. ListView/Pagination 이제 기존에 Lorem Picsum으로 간단히 적용해놓았던 List 페이지를 실제로 사용자가 입력하는 Article들의 리스트가 조회되도록 수정한다. ListView 적용 임시로 적용해두었던 TemplateView를 ListView로 변경한다. ListView도 CRUD 관련 View들과 마찬가지로 django에서 기본적으로 제공해주는 view이며, 여기에는 pagination option도 지정할 수 있다. articleapp/views.py ArticleListView를 추가한다. ListView를 상속받고, paginate_by 옵션을 설정해준다. 5로 두어 한 페이지당 5개만 출력되도록 해본다. class ArticleListView(ListView): m..
Django로 Pinterest 따라 만들기-11. MagicGrid 활용, ArticleApp CRUD 완성하기 1. Articleapp.list 생성 / MagicGrid 적용 Articleapp을 만들고 나서 Article list가 반응형 사진 앨범처럼 나오게 해주는 MagicGrid를 적용해볼 것이다. Articleapp 기본 틀 생성 -articleapp을 시작한다. 'python manage.py startapp articleapp' -pragmatic/settings.py에 추가 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'a..
Django로 Pinterest 따라 만들기-10. Profileapp 마무리, 리팩토링 1. ProfileUpdateView ProfileUpdateView 생성 createView와 거의 동일하게 생성한다. views.py 일부 class ProfileUpdateView(UpdateView): model = Profile context_object_name = 'target_profile' form_class = ProfileCreationForm success_url = reverse_lazy('accountapp:hello_world') template_name = 'profileapp/update.html' update.html enctype을 추가해주었다. {% extends 'base.html' %} {% load bootstrap4 %} {% block content %} Up..
Django로 Pinterest 따라 만들기-9. ModelForm 사용, Profileapp 구현 이제 accountapp 외에 Profileapp을 만들어본다. 1. pillow 라이브러리 profileapp 작성 전, pillow 라는 라이브러리를 설치한다. 'pip install pillow' 파이썬의 pillow 라이브러리는 이미지 처리 라이브러리다. 이미지 포맷 변환, 이미지 파일 읽고 쓰기, 이미지 편집 등의 기능을 제공한다. 나중에 이미지 처리가 필요한 부분에서 이 라이브러리를 사용할 것이다. 2. ProfileApp 시작 profileApp 생성 accountapp을 만들었을 때와 마찬가지로 profileapp을 만든다. 1. profileapp 생성 : 'python manage.py startapp profileapp' 명령어 입력 2. INSTALLED_APPS 등록 : pragm..