Backend/Django + Bootstrap 개발 일지

    23. 외부 라이브러리를 블로그에 활용 (폼 모양 꾸미기, 마크다운 적용)

    23. 외부 라이브러리를 블로그에 활용 (폼 모양 꾸미기, 마크다운 적용)

    ● 폼 모양 꾸미기 지금까지 제작된 블로그를 보면 영 엉성하다. 이전글에서 보았듯이 포스트 등록, 수정 페이지가 왼쪽으로 치우친 느낌이 있으니 썩 깔끔한 모습이 아니다. 보기 좋게 바꾸어 본다. Django-crispy-forms 적용 django-crispy-forms 설치 모듈을 설치 하였다고 해서 바로 적용되는 것이 아니기에 django_blog_project/settings.py 파일의 INSTALLED_APPS에 crispy_form을 등록하고 아래쪽에는 crispy_form의 스타일을 bootstrap4로 지정한다. post_form.html을 수정하여 crispy-forms 적용 crispy_forms를 적용하기 위해 {% load crispy_forms_tags %}를 적는다. crispy..

    22. 태그 선택란 추가

    22. 태그 선택란 추가

    ● 태그 선택란 추가 PostCreate 클래스의 fields 리스트에 'tags'를 추가하면 post create 페이지에 tags 와 관련된 공간이 생긴다. django 에서 지원하기 때문에 이렇게 tags란 단어만 입력해도 바로 생성할 수 있다. 템플릿 파일에 input 추가 post_form.html의 {{ form }} 밑에 tags 필드를 추가한다. 은 태그를 만들고 는 표의 제목을 뜻하고 은 가로줄을 만든다. 는 셀을 만드는걸 뜻한다. 태그로 한 줄 추가 후 그 안에 label, input 요소를 넣는다. input 요소에는 문자를 입력 받도록 type="text" name="tags_str" id="id_tags_str"로 속성을 추가한다. 그 후 새로 추가한 Tags 입력칸만 쓰이도록 기..

    21. 수정 기능 구현

    21. 수정 기능 구현

    ● 포스트 수정 페이지 구현 테스트 코드로 기본 요건 정의 테스트 코드 작성 요구하는 바람직한 상태를 test_update_post() 함수로 작성한다. urls.py 와 views.py 수정 /blog/update_post/post pk로 접근한다면 views.py의 PostUpdate 클래스를 사용하도록 한다. 포스트 작성자만 수정할 수 있게 구현 dispatch()로 요청 방식 판단 dispatch() 메서드는 클라이언트에서 GET 혹은 POST 방식으로 요청했는지 판단하는 기능을 한다. CreateView, UpdateView의 경우 해당 경로에 GET 방식으로 들어오면 포스트를 작성하는 폼 페이지로 보내준다. POST로 들어오는경우 유효한지 확인후 DB에 내용을 저장한다. dispatch()가 ..

    20. 폼으로 포스트 작성

    20. 폼으로 포스트 작성

    ● 포스트 작성 페이지 구현 포스트 작성 페이지 기본 틀 만들기 더이상 admin 같은 관리자 페이지에서 포스트를 작성하는 것이 아닌 일반적인 웹 페이지와 같이 포스트를 쓸 수 있도록 포스트 작성 페이지를 구현해 본다. 테스트 코드 작성 test_create_post() 함수를 새로 만들어 /blog/create_post/ URL로 접근하면 포스트 작성 페이지가 정상적으로 접속되었다는 뜻의 status_code 200 인지 확인하고 특정 제목과 문구가 main-area에 있는지 확인한다. 테스트 하면 당연하게도 404 오류가 출력되는데 이번에는 실수없이 URL 설정을 잘해서 헤메는 일이 없도록 해야한다. views.py에 CreateView 추가 from django.views.generic import..