Programming

; develop a program

반응형

python 80

[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) 기본요소 - 폼(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

[Django] 장고(Django) 기본요소 - 부트스트랩(Bootstrap)

이번 포스팅에서는 장고의 기본 요소 중 하나인 부트스트랩(Bootstrap)에 대하여 공부를 해보고자 한다. 부트스트랩(Bootstrap) 부트스트랩은 디자이너의 도움 없이도 개발자 혼자서 상당히 괜찮은 수준의 웹 페이지를 만들 수 있게 도와주는 프레임워크이다. 트위터(Twitter)를 개발하면서 만들어졌고 현재 지속적으로 관리되고 있는 오픈소스 프로젝트이다. 부트스트랩 특징 웹 페이지를 쉽게 만들 수 있다. 부트스트랩을 다루기 위해서는 HTML과 CSS에 대한 어느 정도의 지식이 필요하다. 반응형 웹 부트스트랩을 이용하면 쉽게 반응형 웹을 만들 수 있다. 많은 자바스크립트 플러그인의 지원 부트스트랩으로 디자인하면서 필요한 자바스크립트 플러그인은 검색하면 대부분 찾을 수 있다. 부트스트랩을 위한 플러그인..

Framework/Django 2022.12.01

[Django] 장고(Django) 기본요소 - 스태틱(static)

이번 포스팅에서는 장고의 기본 요소 중 하나인 스태틱(static)에 대하여 공부를 해보고자 한다. 스태틱(static) 디렉터리 스타일시트 파일은 장고의 스태틱 디렉터리에 저장해야 한다. 스태틱 디렉터리도 템플릿 디렉터리와 마찬가지로 config/settings.py 파일에 등록하여 사용한다. 먼저 config/settings.py 파일을 수정한다. [파일명: projects\mysite\config\settings.py] (... 생략 ...) STATIC_URL = 'static/' STATICFILES_DIRS = [ BASE_DIR / 'static', ] (... 생략 ...) STATICFILES_DIRS이라는 리스트 변수를 추가했다. 그리고 STATICFILES_DIRS에는 BASE_DIR..

Framework/Django 2022.11.29

[Django] 장고(Django) 기본요소 - 데이터 저장

이번 포스팅에서는 장고의 기본 요소 중 하나인 URL 별칭에 대하여 공부를 해보고자 한다. 답변 등록 폼 질문 상세 템플릿에 다음처럼 답변을 저장할 수 있는 폼(form)을 추가한다. [파일명: projects\mysite\templates\pybo\question_detail.html] {{ question.subject }} {{ question.content }} {% csrf_token %} 답변의 내용을 입력할 수 있는 텍스트 창(textarea)과 답변을 저장할 수 있는 "답변 등록" 버튼을 추가했다. 답변 저장을 위한 URL은 form 태그의 action 속성에 {% url 'pybo:answer_create' question.id %}로 지정했다. form 태그 바로 밑에 보이는 {% cs..

Framework 2022.11.28

[Django] 장고(Django) 기본요소 - URL 별칭

이번 포스팅에서는 장고의 기본 요소 중 하나인 URL 별칭에 대하여 공부를 해보고자 한다. URL 하드코딩 다음은 question_list.html 템플릿에 사용된 링크다. {{ question.subject }} 질문 상세를 위한 URL 링크지만 이러한 URL 링크는 수정될 가능성이 있다. 예를 들어 http://localhost:8000/pybo/question/2 또는 http://localhost:8000/pybo/2/question 처럼 바뀔 수 있다. URL 링크의 구조가 자주 변경된다면 템플릿에서 사용한 모든 URL들을 일일이 찾아가며 수정해야 하는 리스크가 발생한다. 이러한 문제점을 해결하기 위해서는 해당 URL에 대한 실제 링크 대신 링크의 주소가 1:1 매핑되어 있는 별칭을 사용해야 한..

Framework/Django 2022.11.27
반응형