DevHyun

[DevHyun's Blog] django 에서 첫 URL 생성 후 view 와 Template만들기! 본문

Web/Django&Python Blog Projecct

[DevHyun's Blog] django 에서 첫 URL 생성 후 view 와 Template만들기!

D3V3L0P3R 2020. 10. 16. 19:55

 

1. Django URL

 

Django URLconf (URL configuration)를 사용합니다. URLconf는 Django에서 URL과 일치하는 뷰를 찾기 위한 패턴들의 집합입니다.

 

2. DevhyunDjangoBlog/url.py

* Django는 admin/로 시작하는 모든 URL을 view와 대조해 찾아냅니다. 무수히 많은 URL이 admin URL에 포함될 수 있어 일일이 모두 쓸 수 없기 때문에 정규표현식을 사용합니다.

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

urlpatterns = [
    path('admin/', admin.site.urls),
]

3. Blog App에서 DevhyunDjangoBlog/urls.py파일로 url들을 가져오기

* DevhyunDjangoBlog/urls.py

* 아래의 코드로 인해 Django는 http://127.0.0.1:8000/ 로 들어오는 모든 접속 요청을 Blog.urls(Blog/urls.py)로 전송해 추가 명령을 찾을 것.

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')),
]

 

4. Blog App에서 urls.py 파일 생성 후 URL 패턴 추가

* path와 Blog App에서 사용할 모든 views를 가져오기( from . )

* post_list라는 view가 루트 URL에 할당되었습니다. 이 URL 패턴은 빈 문자열에 매칭이 되며, 장고 URL 확인자(resolver)는 전체 URL 경로에서 접두어(prefix)에 포함되는 도메인 이름(i.e. http://127.0.0.1:8000/)을 무시하고 받아들입니다. 이 패턴은 장고에게 누군가 웹사이트에 'http://127.0.0.1:8000/' 주소로 들어왔을 때 views.post_list를 보여주라고 말해줍니다.

 

from django.urls import path
from . import views

urlpatterns = [
    path('', views.post_list, name='post_list'),
]

 

5. view가 없기때문에 run 해도 에러 발생!

 

6. Django view

View 는 애플리케이션의 "로직"을 넣는 곳입니다. Model에서 필요한 정보를 받아와서 템플릿에 전달하는 역할을 합니다.

 

7. Blog/views.py 에서 view 만들기

*  post_lsit라는 함수(def)는 요청(request)을 넘겨받아 render메서드를 호출합니다. 이 함수는 render 메서드를 호출하여 받은(return) blog/post_list.html템플릿을 보여줍니다.

def post_list(request):
    return render(request, 'blog/post_list.html', {})

 

8. 당연히 post_list.html 템플릿이 없으니 에러 발생!

 

9. Template

Django의 Template 양식은 HTML입니다. 

 

10. Blog/Templates Directory 만들기

 

11. Blog/Templates/Blog Directory 만들기

 

12. Blog/Templates/Blog Directory에 post_list.html 파일만들기

 

13. run 한 후에 http://127.0.0.1:8000 진입 

* 에러 사라지고 빈 페이지 호출

쨔잔-! 빈-페이지!

 

14. post_list.html 에 테스트 코드 넣고 run!

<html>
    <p>Hi there!</p>
    <p>It works!</p>
</html>

15. Templates 예제 입력!

<!DOCTYPE html>
<html>
    <head>
        <title>DevHyun's blog</title>
    </head>
    <body>
        <div>
            <h1><a href="">DevHyun's Blog</a></h1>
        </div>

        <div>
            <h2><a href="">My first post</a></h2>
            <p>Hi there!</p>
            <p>published: 16.10.2020, 19:00</p>
        </div>

        <div>
            <h2><a href="">My second post</a></h2>
            <p>bye there..</p>
            <p>published: 16.10.2020, 19:01</p>
        </div>
    </body>
</html>

 

16. 완-벽

Comments