1. 애플리케이션 설계
1) UI 설계
post_all.html: 본문 제목(-> post_detail.html), Post.title, Post.modify_date, Post.description, 페이지 이동
post_detail.html: Post.title, 포스트 이동,(?), Post.modify_data, Post.content
2) 테이블 설계
id: integer/ PK, Auto Icrement, 기본 키
title: CharField(50) => 포스트 제목
slug: SlugField, Unique => 포스트 제목 별칭(??)
description: CharField(100), Blank => 포스트 내용 한줄설명
content: TextField => 포스트 내용
create_data: DateTieField: auto_now_add, 포스트 생성 날짜
modify_date: DateTimeField: auto_now => 포스트 수정 날짜
3) 로직 설계
4) URL 설계 : URL 패선 / 뷰 이름 / 템플릿 파일명
blog/ => PostLV(ListView) => post_all.html
blog/post: blog/랑 동일하게
blog/post/django-example => PostDV(DetailView) => post_detail.html
blog/archive => PostAV(ArchiveListView) => post_archive.html
blog/2017 => PostYAV(YearArchiveView) => post_archive_year.html
blog/2017/Feb => PostMAV(MonthArchiveView) => port_archive_month.html
blog/2017/Feb/20 => PostDAV(DayArchiveView) => port_archive_day.html
blog/today/ => PostTAV(TodayArchiveView) => post_archive_day.html
admin/
5) 작업 순서
-뼈대: startproject => settings.py => migrate => superuser => startapp => settings.py (앱 등록)
-모델 코딩: models.py => admin.py => makemigrations => migrate
-URLconf 코딩: urls.py
-뷰 코딩: views.py
-템플릿 코딩: templates 디렉토리
*템플릿 코딩 중 에러
archive 만드는 중
ImproperlyConfigured at /admin/archive/
This query requires pytz, but it isn't installed.
에러 메세지가 발생. 그래서 pytz 패키지를 설치하였다
$pip install pytz
pytz는 python timezone 패키지로 자세한 내용은 http://www.haruair.com/blog/1759 참고하여 더 공부
*YearArchiveView 관련 object_list가 불러오지 않는 상황 => 해결
-책에는 나와있지 않지만 장고 공식 문서에서 class의 속성으로
make_object_list = True 값으로 주자 나왔다
(https://docs.djangoproject.com/en/1.10/ref/class-based-views/generic-date-based/)
*date 표시 기호(영문)
b: mar, jan ...
j: 1, 2, 3... 30 일
Y: 2017
'b': 03, 02 등 월 표시
'backend > django' 카테고리의 다른 글
3장, 장고 웹 프레임워크: MTV(Moedl, Template, View) (0) | 2017.03.08 |
---|---|
기본편 1장 웹프로그램의 이해, 2장 파이썬 웹 표준 라이브러리 (0) | 2017.03.08 |
장고 개발 기본, Bookmark 앱 만들기 (0) | 2017.03.05 |
django tutorial: advanced- 앱 재사용하기 (0) | 2017.03.04 |
django tutorial: 테스트 만들기 에러(python manage.py test polls) (0) | 2017.03.03 |