Programming

; develop a program

반응형

장고 28

[Django] 장고(Django) 서비스 개발 - 추가 기능

현재 내가 공부하고 있는 교재에서 구현할 게시판의 기능은 아쉽지만 여기까지이다. 다루지 못했지만 구현하면 좋을 것 같은 기능들이 몇 가지 있는데 여기에 간단하게 소개하려 한다. 아래에 소개한 기능들을 내가 스스로 하나씩 구현해 가다 보면 장고에 대해서 더 깊게 이해할 수 있지 않을까 한다. 이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 추가 기능에 대하여 공부를 해보고자 한다. 답변 페이징과 정렬 현재 하나의 질문에 무수히 많은 답변이 달릴 수 있는 구조이다. 만약 답변이 100개가 된다고 상상해 보자. 성능을 위해서라도 답변의 페이징은 반드시 필요하다고 생각된다. 그리고 답변을 보여줄 때에도 최신순, 추천순 등으로 정렬하여 보여줄 수 있는 기능도 있으면 좋을 것 같다. 유명한 질문 답변..

Framework/Django 2022.12.26

[Django] 장고(Django) 서비스 개발 - 검색

이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 검색에 대하여 공부를 해보고자 한다. 검색 기능 질문답변에 대한 데이터가 계속 쌓여가는 게시판에 검색기능은 필수라고 할 수 있다. 검색의 대상은 제목, 질문의 내용, 질문 작성자, 답변의 내용, 답변 작성자 정도로 하면 적당할 것이다. 즉, "파이썬"이라고 검색을 하면 "파이썬" 이라는 문자열이 제목, 내용, 질문 작성자, 답변, 답변 작성자에 존재하는지 찾아보고 그 결과를 화면에 보여주어야 한다. 이런 조건으로 검색하려면 질문 목록을 조회하는 부분을 다음처럼 수정해야 한다. 지금은 실제 파일을 수정하지 말고 지금은 눈으로만 살펴본다. from django.db.models import Q kw = request.GET.get('kw', ''..

Framework/Django 2022.12.25

[Django] 장고(Django) 서비스 개발 - 마크다운(Markdown)

이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 마크다운(Markdown)에 대하여 공부를 해보고자 한다. 마크다운 설치 마크다운 기능을 추가하려면 마크다운 모듈을 설치해야 한다. 다음처럼 pip install markdown으로 마크다운을 설치한다. (mysite) c:\projects\mysite>pip install markdown Collecting markdown Downloading Markdown-3.4.1-py3-none-any.whl (93 kB) Installing collected packages: markdown Successfully installed markdown-3.4.1 마크다운 필터 등록 마크다운으로 작성한 문서를 HTML 문서로 변환하려면 템플릿에서 사용할..

Framework/Django 2022.12.24

[Django] 장고(Django) 서비스 개발 - 앵커(anchor)

더 많은 기능을 추가하기 전에 발견된 몇 가지 문제점을 해결하려고 한다. 발견된 문제점은 답글을 작성하거나 수정한 후에 항상 페이지 상단으로 스크롤이 이동되기 때문에 본인이 작성한 답변을 확인하려면 다시 스크롤을 내려서 확인해야 한다는 점이다. Ajax와 같은 비동기 통신 기술을 사용하여 이 문제를 해결할 수도 있지만 보다 쉬운 방법으로 이 문제를 해결해 보려 한다. 이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 앵커(anchor)에 대하여 공부를 해보고자 한다. 앵커(anchor) HTML에는 URL 호출 시 원하는 위치로 이동시켜 주는 앵커(anchor) 태그가 있다. 예를 들어 HTML 중간에 라는 앵커 태그가 있다면 이 HTML을 호출하는 URL 뒤에 #django 라고 붙여주면 ..

Framework/Django 2022.12.23

[Django] 장고(Django) 서비스 개발 - 추천

이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 "추천(좋아요)" 기능에 대하여 공부를 해보고자 한다. 모델 변경 우선 Question 모델에 추천인(voter) 속성을 추가하려 한다. 하나의 질문에 여러 명이 추천할 수 있고 한 명이 여러 개의 질문에 추천할 수 있으므로 이런 경우에는 "다대다(N:N)" 관계를 의미하는 ManyToManyField를 사용해야 한다. [파일명: projects\mysite\pybo\models.py] (... 생략 ...) class Question(models.Model): author = models.ForeignKey(User, on_delete=models.CASCADE) subject = models.CharField(max_length=200) ..

Framework/Django 2022.12.22

[Django] 장고(Django) 서비스 개발 - views.py 파일 분리

장고에 기능을 계속 추가하다 보면 뷰 파일(views.py)에 함수가 계속 늘어나 불편함을 느낄 수 있다. (현재 추가된 기능만으로도 뷰 파일이 매우 방대해졌다) view 파일에 함수가 많아지면 관리하기 힘들어지기 때문에 개선할 수 있는 두 가지 방법이 있다. 결론적으로 두 번째 방법을 사용할 것이지만 두 번째 방법을 진행하기 위해서는 첫 번째 방법을 적용한 후에 가능하다. 이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 views.py 파일 분리에 대하여 공부를 해보고자 한다. 첫 번째 방법 첫 번째 방법은 views.py 파일만 여러 파일로 분리하고 나머지는 고치지 않아도 되는 변화가 적은 방법이다. 먼저 projects\mysite\pybo\views 디렉터리를 다음과 같이 생성한다...

Framework/Django 2022.12.21

[Django] 장고(Django) 서비스 개발 - 수정과 삭제

작성한 질문과 답변을 수정하고 삭제할 수 있는 기능을 추가하려고 한다. 비슷한 기능을 반복적으로 구현해야 하므로 조금 지루할 수 있지만 장고 패턴에 익숙해질 수 있는 좋은 기회라고 생각하고 따라 해 보자. 이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 수정과 삭제에 대하여 공부를 해보고자 한다. 수정 일시 질문이나 답변이 언제 수정되었는지 확인할 수 있도록 Question과 Answer 모델에 수정 일시를 의미하는 modify_date 속성을 추가한다. [파일명: projects\mysite\pybo\models.py] (... 생략 ...) class Question(models.Model): (... 생략 ...) modify_date = models.DateTimeField(null..

Framework/Django 2022.12.20

[Django] 장고(Django) 서비스 개발 - 글쓴이 표시

앞서 Question 모델과 Answer 모델에 author 속성을 추가했다. 게시판의 게시물에는 "글쓴이"를 표시하는 것이 일반적이다. 질문 목록, 질문 상세 화면에 author 속성을 이용하여 글쓴이를 표시하려 한다. 이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 모델 변경에 대하여 공부를 해보고자 한다. 질문 목록 먼저 질문 목록 템플릿에 글쓴이를 표시하기 위해 다음과 같이 테이블 헤더에 글쓴이 항목을 추가한다. [파일명: projects\mysite\templates\pybo\question_list.html] (... 생략 ...) 번호 제목 글쓴이 작성일시 (... 생략 ...) 글쓴이 항목을 추가했다. 그리고 th 엘리먼트를 가운데 정렬하도록 tr 엘리먼트에 text-cent..

Framework/Django 2022.12.19

[Django] 장고(Django) 서비스 개발 - 모델 변경

게시판의 질문, 답변에는 누가 글을 작성했는지 알려주는 "글쓴이" 항목이 필요하다. 따라서 Question과 Answer 모델에 "글쓴이"에 해당되는 author 속성을 추가한다. 이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 모델 변경에 대하여 공부를 해보고자 한다. Question 속성 추가 먼저 Question 모델에 author 속성을 추가한다. [파일명: projects\mysite\pybo\models.py] from django.db import models from django.contrib.auth.models import User class Question(models.Model): author = models.ForeignKey(User, on_delete=models..

Framework/Django 2022.12.18

[Django] 장고(Django) 서비스 개발 - 회원가입

이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 회원가입에 대하여 공부를 해보고자 한다. 회원가입 링크 회원가입 역시 장고의 django.contrib.auth 앱을 이용하면 쉽게 구현할 수 있다. 회원가입을 위한 링크를 navbar.html 템플릿에 추가한다. [파일명: projects/mysite/templates/navbar.html] (... 생략 ...) {% if user.is_authenticated %} { { user.username }} (로그아웃) {% else %} 로그인 {% endif %} {% if not user.is_authenticated %} 회원가입 {% endif %} 로그인/로그아웃 바로 우측에 "회원가입" 링크를 추가했다. 회원가입은 로그아웃 상태에..

Framework/Django 2022.12.17
반응형