Programming

; develop a program

반응형

기초 77

[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

[Django] 장고(Django) 서비스 개발 - 로그인과 로그아웃

이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 로그인과 로그아웃에 대하여 공부를 해보고자 한다. 로그인과 로그아웃 현재 여러 사람이 사용하는 질문 답변 게시판을 만들고 있다. 하지만 지금까지 회원가입 기능도 로그인, 로그아웃 기능도 없었다. 질문을 올린 사람, 답변을 올린 사람을 구별하기 위해서는 로그인과 로그아웃 기능이 필수이다. 장고의 로그인, 로그아웃을 도와주는 앱은 django.contrib.auth 이다. 이 앱은 장고 프로젝트 생성시 다음처럼 자동으로 추가된다. [projects\mysite\config\settings.py] INSTALLED_APPS = [ (... 생략 ...) 'django.contrib.auth', (... 생략 ...) ] django.contrib...

Framework/Django 2022.12.14

[Django] 장고(Django) 서비스 개발 - 답변 개수 표시

이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 답변 개수에 대하여 공부를 해보고자 한다. 답변 개수 표시 질문 목록에 "해당 질문에 달린 답변 개수"를 표시할 수 있는 기능을 추가한다. 코드의 분량은 많지 않지만, "게시판 서비스를 더욱 서비스답게 만들어 주는 기능"이다. 답변 개수는 다음처럼 게시물 제목 바로 오른쪽에 표시하려 한다. [파일명: projects\mysite\templates\pybo\question_list.html] (... 생략 ...) {{ question.subject }} {% if question.answer_set.count > 0 %} {{ question.answer_set.count }} {% endif %} {% if question.answer_se..

Framework/Django 2022.12.13

[Django] 장고(Django) 서비스 개발 - 템플릿 필터

이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 템플릿 필터에 대하여 공부를 해보고자 한다. 템플릿 필터 템플릿 필터란 템플릿 태그에서 | 문자 뒤에 사용하는 필터를 말한다. 필터란 일반적인 용어로 어떤 객체나 처리 결과에 추가적으로 명령을 적용하여 해당 명령에 맞게 최종 결과를 변경하는 것을 말한다. 템플릿 변수에 필터를 적용하여 변수의 출력 결과를 변경할 수 있다. 다음 예처럼 default_if_none과 같은 것들을 템플릿 필터라고 한다. {{ form.subject.value|default_if_none:'' }} 게시물 번호 오류 현재 생성한 질문 목록 화면에는 한 가지 오류가 있다. 다음처럼 모든 페이지에서 게시물 번호가 항상 1부터 시작된다는 점이다. 두 번째 페이지로 이동하..

Framework/Django 2022.12.12

[Django] 장고(Django) 서비스 개발 - 페이징(Paging)

이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 페이징(Paging)에 대하여 공부를 해보고자 한다. 페이징(Paging) 페이징이란 고정 분할 방식으로 메모리를 분할하여 가상 주소를 물리 주소로 변환하는 방법이다. 단편화를 최소화하기 위해 메인 메모리와 가상 메모리를 같은 크기로 분할해 가지고 와서 할당한다. 가상 메모리는 하나의 분할된 영역을 page(페이지) - 논리 주소 물리 메모리는 하나의 분할된 영역을 Frame(프레임) - 물리 주소(실제의 주소) 페이지와 프레임의 크기는 같기 때문에 단편화(자투리 공간)를 줄여서 메모리를 효율적으로 사용할 수 있다. 즉, 고정 분할 방식(고정된 크기로)으로 메모리를 분할하여 가상 주소를 물리 주소로 변환하는 방법이다. 예를 들어 게시판 등과 ..

Framework/Django 2022.12.06

[Django] 장고(Django) 서비스 개발 - 내비게이션 바(navigation bar)

이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 내비게이션 바(navigation bar)에 대하여 공부를 해보고자 한다. 내비게이션 바 내비게이션 바는 흔히 사용하는 웹 사이트의 메뉴를 의미한다. 화면 위쪽에 고정되어 있는 부트스트랩 컴포넌트이다. 내비게이션 바는 모든 페이지에서 공통적으로 보여야 하므로 base.html 템플릿에 추가해야 한다. [파일명: projects\mysite\templates\base.html] Pybo 로그인 {% block content %} {% endblock %} 항상 pybo:index 페이지로 이동해 주는 'Pybo' 로고를 가장 왼쪽에 배치했고, 오른쪽에는 '로그인' 링크를 추가한다. 이와 같이 수정하고 질문 목록 페이지를 요청하면 화면 상단에 다..

Framework/Django 2022.12.05

[Django] 장고(Django) 기본요소 - 폼(Form)

이번 포스팅에서는 장고의 기본 요소 중 하나인 폼(Form)에 대하여 공부를 해보고자 한다. 폼(Form) Django의 폼은, 사용자에게 정보를 수정하는 화면을 직접 보여줄 때 사용한다. 쉽게 말해서 폼은 페이지 요청 시 전달되는 파라미터들을 쉽게 관리하기 위해 사용하는 클래스이다. 폼은 필수 파라미터의 값이 누락되지 않았는지, 파라미터의 형식은 적절한지 등을 검증할 목적으로 사용한다. 이 외에도 HTML을 자동으로 생성하거나 폼에 연결된 모델을 이용하여 데이터를 저장하는 기능도 있다. 질문 등록 질문을 등록하려면 먼저 "질문 등록하기" 버튼을 만들어야 한다. [파일이름: projects\mysite\templates\pybo\question_list.html] (... 생략 ...) 질문 등록하기 {..

Framework/Django 2022.12.04

[Django] 장고(Django) 기본요소 - 템플릿 상속(extend)

이번 포스팅에서는 장고의 기본 요소 중 하나인 템플릿 상속(extend)에 대하여 공부를 해보고자 한다. 표준 HTML 구조 지금까지 작성한 질문 목록, 질문 상세 템플릿은 표준 HTML 구조가 아니다. 어떤 웹 브라우저를 사용하더라도 웹 페이지가 동일하게 보이고 정상적으로 작동하게 하려면 반드시 웹 표준을 지키는 HTML 문서를 작성해야 한다. [표준 HTML 구조의 예] (... 생략 ...) 표준 HTML 문서의 구조는 위의 예처럼 html, head, body 엘리먼트가 있어야 하며, CSS 파일 링크는 head 엘리먼트 안에 있어야 한다. 또한 head 엘리먼트 안에는 meta, title 엘리먼트 등이 포함되어야 한다. 태그와 엘리먼트 (... 생략 ...) 은 table 태그이고 ~ 처럼 t..

Framework/Django 2022.12.02
반응형