튜토리얼 6

[Django] 12. 게시판 페이징 기능추가

지금이야 게시글 개수가 몇개 없지만, 늘어난다면 어떻게 될까? 장고 쉘을 이용해서 게시글 개수를 늘려보자. >>python manage.py shell from pybo.models import Question from django.utils import timezone for i in range(300): q = Question(subject='%03d 게시글'%i, content = '약오르지', create_date = timezone.now()) q.save() 페이징을 하지 않았으므로 스크롤이 굉장히 길어진다. 이제 페이징을 통해 화면을 개선해보자. from django.core.paginator import Paginator ... ... def index(request): ''' pybo 목..

python/Django 2021.12.29

[Django] 11. 네비게이션 기능 추가

기본 기능 외에 편의기능을 구현해보자. 메인페이지로 돌아가는 기능과 로그인기능을 추가할 것이다. templates/base.html를 열어 아래와같이 수정하자. {% load static %} Pybo 로그인 {% block content %} {% endblock %} navbar-brand에 Pybo로고를 만들어주고 클릭시 pybo:index로 이동하게 만들자. 위치는 맨 왼쪽이며, 그 오른쪽엔 로그인 링크를 추가 번호와 페이징은 추후에 다룰 예정이니 모른 척 넘어가고, Pybo와 로그인이 상단 좌측에 표시된것을 볼 수 있다. base.html은 모든 화면이 상속받고있기 때문에 어느 페이지를 들어가도 방금 추가한 네비게이션이 표시된다. 자, 여기서 화면을 작게 줄여보자. 로그인 표시가 사라지고 우측상..

python/Django 2021.12.29

[Django] 9. 부트스트랩을 적용시키자.

웹 페이지를 더 예쁘게 꾸미기 위해서 CSS가 필수적이다. 하지만 거두절미하고 부트스트랩을 사용하면 더 편하게 꾸밀 수 있다. 우선, css파일은 모두 프로젝트 디렉터리에 static 폴더를 만들어 관리한다. static 폴더를 만든 다음 부트스트랩을 다운받자. 다음 링크에 들어가서 부트스트랩 설치파일을 내려받자. https://getbootstrap.com/docs/4.5/getting-started/download/ 다운받아서 당장은 전부 사용할 필요는 없고, bootstrap.min.css 파일만 방금 만든 static 폴더 안에 집어넣어주자. ( 다음에 사용할 수 있으니 지우진 말자 ) 그 다음 settings.py 파일을 열어서 static 경로를 추가해주자 #config/setting.py ...

python/Django 2021.12.27

[Django] 8. 답변기능 구현

URL 별칭을 통해 하드코딩을 없애주고, 질문등록과 조회기능을 구현했다. 이제 답변기능을 구현해보자. 답변기능은 question_detail.html파일을 수정하자. {{ question.subject }} {{ question.content }} {% csrf_token %} 답변등록을 통해 pybo:answer_create URL이며, question.id도 같이 보내준다. ( 아직 구현 전이다. ) form은 html에서 데이터를 모아주는 보자기라고 생각하면 된다. 이 form 안에 답변 내용을 담을 textarea를 만들어주고, 등록버튼을 통해 action에 있는 URL로 제출한다. 여기서 {% csrf_token %} 을 볼 수 있는데, 이 구문은 작성되서 전달하는 form이 실제로 웹 브라우저..

python/Django 2021.12.23

[Django] 7. URL 네이밍하기

URL 하드코딩을 없애보자. 그 전에 URL 하드코딩이란 뭘까? 우리가 만든 question_list.html에서 href태그를 한번 뜯어보자. {{ question.subject }} 이런 형태의 URL로 구성했는데, 만약 서비스를 확장하면서 question.id 앞이나 뒤에 다른 구분자 예를들면 /pybo/2/question or /pybo/question/2/ 처럼 구조를 변경했다고 치자. 그렇게되면 템플릿에 사용된 모든 href태그들을 하나하나 수정해줘야한다. 이렇게 하드코딩된 URL을 보기 쉽게 바꿔주기 위해서 URL 별칭을 사용해야한다. 간단하게 생각하면 URL을 하나의 변수로 만들어 템플릿에서 사용할 수 있도록 하는과정이다. pybo/urls.py 를 열어 수정하자. from django.u..

python/Django 2021.12.23

[Django] 5. 장고 Admin 활용

이전 포스팅에서는 shell을 이용해서 db에 데이터를 추가하고 삭제했다. flask를 사용하다가 장고를 사용하면서 가장 충격받았던 기능이 Admin기능인데, 관리자 계정을 추가하고 관리자 페이지로 접속하면 Admin페이지에서 데이터 추가 / 삭제가 가능하다. python manage.py createsuperuser superuser를 추가해보자. 위의 사진처럼 아이디와 패스워드를 입력해주자, 짧다고 경고문구가 나오지만 무시하고 y 입력하자. 127.0.0.1:8000/admin 으로 접속하면 다음과 같은 화면이 나온다. 아까 지정한 superuser 정보를 입력하면 접근이 가능하다. 첫 화면엔 우리가 정한 pybo 서비스가 보이지 않는다. admin페이지에서 Question를 등록해주자. from d..

python/Django 2021.12.22
반응형