[Django] 미리보기 기능 구현
·
캡스톤/Django
1. 포스트 출력 글자 수 제한하기  우리가 포스트 목록 페이지에서 포스트를 보면 포스트 내용이 길 경우 저렇게 모든 텍스트가 나온다. 장고에서는 이런 점을 해결하기 위해 truncatewords 나 truncatechars 를 사용한다. 포스트 목록 페이지의 포스트 내용 글자 수를 제한해주는 거니까 당연히 blog/templates/blog/post_list.html 을 수정해한다. (...생략){% endif %} {{ p.title }} {{ p.content | truncatewords:45 }} Read More →(...생략)    음 45글자 출력되고 남은 포스트 내용은 ...으로 잘 출력된다.  2. 요약문 필드 다음은 포스트의 요약문을 보여주는 hook_text..
[Django] 템플릿에서 if 문 적용하기
·
캡스톤/Django
1. HTML 에서 if 문 으로 헤드 이미지 적용하기 일단 헤드 이미지가 없을 때에도 정상적으로 포스트 목록 페이지가 나오게하기 위해서 blog/templates/blog/post_list.html 을 수정하자. (...생략)Blog{% for p in post_list %} {% if p.head_image %} 태그에서 alt 는 이미지를 보여줄 수 없을 때 이미지 대신 나타나는 텍스트를 의미 --> {% endif %} (...생략)   정상적으로 포스트 목록 페이지가 출력된다. 다음은 만약 헤드 이미지가 없으면 허전하니까 임의의 이미지를 보여주도록 lorem picsum 을 써보자. blog/templates/blog/post_list.html 수정합시다. (...생략)..
[Django] 포스트 상세 페이지에 부트스트랩 적용
·
캡스톤/Django
1. 포스트 상세 페이지에 부트스트랩 적용하기 이번에는 포스트 상세 페이지에 적용하자. 일단 하기 전에!  이 포스트의 주 내용을 담고있는 부분을 앞으로 메인 영역이라고 하자. HTML 코드에도 로 정의하자. 그리고 Start Bootstrap 사이트의 Blog Post 페이지 소스를 복사해 blog/templates/blog/post_detail.html 에 그대로 붙여넣기 해주자. {% load static %} (...생략)  그러면 포스트 상세 페이지에 부트스트랩이 적용된다.  이제 여기서 저 Welcome to Blog Post! 에 실제 포스트 제목이 들어가도록 해보자. 2. 실제 포스트 내용이 출력되게 수정하기..
[Django] 포스트 목록 페이지에 부트스트랩 적용
·
캡스톤/Django
1. 포스트 목록 페이지에 부트스트랩 적용하기 전에 만들었던 blog_list.html 을 복사해서 방금 만든 post_list.html 에 덮어 씌워보자. 그리고 서버를 실행시키고 http://127.0.0.1:8000/blog/ 에 들어가면  이러한 화면이 나온다. 뭐 전보다는 낫긴 한데 그래도 좀 뭔가 허전하다.. 좀 덜 이쁜걸 보아하니 css 가 적용이 안된 것 같다. 개발자 도구에서 [console] 을 확인하면   음 역시 bootstrap.min.css 가 없댄다.  위의 순서를 보면 웹 브라우저가 서버에 접속을 하면 html 을 서버에게서 받는다. 그런데 만약 html 에서 css 파일을 적용한다고 나와있으면! css 파일을 불러와서 웹 브라우저에 다시 랜더링한다. 즉 bootstrap.m..
[Django] CBV로 페이지 만들기
·
캡스톤/Django
1. CBV로 포스트 목록 페이지 만들기 여러 Posts 를 나열하기 위해서는 ListView 클래스를 사용해야 한다. 그러기 위해서는 blog/views.py 의 모든 내용을 수정해야한다.from django.shortcuts import renderfrom django.views.generic import ListViewfrom .models import Post# 전에 포스트 페이지를 위해 만들었던 FBV 스타일의 index() 함수를 대체하는 PostList 클래스를 ListView 클래스를 상속해서 만든다.# 이 코드의 뜻은 ListView 를 사용하는데 model 은 Post 라는 뜻이다.class postList(ListView): model = Post 그 다음은 만약 주소창에 '/b..
[Django] URL 설정
·
캡스톤/Django
1. do_it_django_prj/urls.pydo_it_django_prj/urls.py 은 웹 사이트의 표지판같은 역할을 한다. urls.py 의 코드를 보면from django.contrib import adminfrom django.urls import path, includeurlpatterns = [ path('admin/', admin.site.urls), # (1) path('blog/', include('blog.urls')), # (2) path('', include('single_pages.urls')), # (3)](1) 주소창에 '사이트주소/admin/' 입력 시, admin.site.urls 을 호출(2) 주소창에 '사이트주소/blog/' 입력 시, blog.u..