훌이
후리스콜링개발
훌이

블로그 메뉴

  • 왈 (iOS APP)
  • Github
전체 방문자
오늘
어제
  • 전체 (171)
    • ⭐️ 개발 (140)
      • JAVA (4)
      • Web (5)
      • iOS & Swift (94)
      • iOS Concurrency (4)
      • Rx (18)
      • Git (6)
      • WWDC (1)
      • Code Refactor (3)
      • Server (1)
    • ⭐️ Computer Science (22)
      • 운영체제 (10)
      • 네트워크 (5)
      • PS (7)
    • 경제시사상식 (8)
    • 기타 등등 (0)

인기 글

최근 글

05-10 18:50

티스토리

hELLO · Designed By 정상우.
훌이
⭐️ 개발/Web

[장고] 장고를 통해 Blog app 생성하는 과정(3) - Detail page

[장고] 장고를 통해 Blog app 생성하는 과정(3) - Detail page
⭐️ 개발/Web

[장고] 장고를 통해 Blog app 생성하는 과정(3) - Detail page

2020. 7. 7. 21:08
728x90
반응형

마지막으로!!

Detail page를 설정해주기 위해 부가적인 기능을 추가해주는 걸 공부해보자!

 

 

15. 글자수를 제한해주는 기능 넣어주기

* models.py에 home.html에서는 본문 내용이 100글자만 보이게 해줌

* 리스트의 슬라이싱 기능을 사용

    def summary(self):
        return self.body[:100]

 

16. more 이라는 글자 링크 달아주기

* 아직 detail page의 url 정의하지 않아서 비워둠

<!-- <p>{{ blog.body }}</p> -->
<p>{{ blog.summary }}<a href="">....more</a></p>

 

17. 각각의 detail page에 해당하는 페이지 열어주기 위해 urls.py / views.py / templates 수정

- urls.py에 n번째 블로그 객체를 요청하면 n번째 객체의 본문 내용을 띄우기 위해 pk(primary key 사용)

from django.contrib import admin
from django.urls import path
from blog import views
import blog.views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.home, name="home"),
    path('blog/<int:blog_id>', blog.views.detail, name="detail")
]

- views.py에 404 에러 화면을 받아오기 위해 수정

   * 존재하지 않는 객체를 요청할 경우 404 에러 띄움

- views.py에 request가 들어오면 몇 번 객체를 다룰 것인지에 대한 정보에 해당하는 함수를 만든다

   ** url/blog/객체번호(n) -> 따라서 detail.html은 딱 한 개만 만들 것임

from django.shortcuts import render, get_object_or_404
# get_object_or_404 함수 사용하기 위해 import 해줌
from .models import Blog
def detail(request, blg_id):
    blog_detail = get_object_or_404(Blog, pk=blog_id)
    #blog_detail 객체에 pk=blog_id인 특정 개체 저장, 없으면 404 에러
    return render(request, 'detail.html', {'blog':blog_detail})
    #detail.html 에 띄워주세요.

 

 

18. more 링크 클릭시 detail 페이지로 전환을 위해 16번에서 비워둔 링크 추가

 <p>{{ blog.summary }}<a href="{% url 'detail' blog.id %}">....more</a></p>

 

19. detail.html에 본문 내용 표시되도록 수정

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <h1>Detail page 입니다.</h1>
    
        <div class="container">
            <h1>{{ blog.title }}</h1>
            <p>{{ blog.pub_date }}</p>
            <p>{{ blog.body }}</p>
            <a href="{% url 'home' %}">돌아가기</a></p>
        </div>
</body>
</html>

 

 

home 화면
Detail 화면

 

길고 길었던 멋사 mtv 세션

blog app 생성 복습하기 끝!

728x90
반응형
저작자표시 변경금지

'⭐️ 개발 > Web' 카테고리의 다른 글

[장고] Blog app - 1:N 댓글 기능 구현하기  (0) 2020.07.11
[장고] 장고를 통해 Blog app 생성하는 과정(2) - View&Templates  (0) 2020.07.06
[장고] 장고를 통해 Blog app 생성하는 과정(1) - Model&Admin  (2) 2020.07.06
[장고]Mac OS에 장고 설치하고 가상환경 설정하기  (0) 2020.07.05
  • 마지막으로!!
  • Detail page를 설정해주기 위해 부가적인 기능을 추가해주는 걸 공부해보자!
'⭐️ 개발/Web' 카테고리의 다른 글
  • [장고] Blog app - 1:N 댓글 기능 구현하기
  • [장고] 장고를 통해 Blog app 생성하는 과정(2) - View&Templates
  • [장고] 장고를 통해 Blog app 생성하는 과정(1) - Model&Admin
  • [장고]Mac OS에 장고 설치하고 가상환경 설정하기
훌이
훌이

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.