본문 바로가기

IT/django(장고)

[django]장고 개발_4 - index 연결 , 확장

 

index 확장을 하기에 앞서

관리자로 로그인 되어있으면 posts에서 추가를 눌러서 글을 하나 작성해주세요.

저장을 눌러서 글이 입력 되는걸 확인 해주세요.

 

app폴더 안에 templates 폴더를 생성해주시고 그안에 app이라는 폴더를 하나더 생성하고 이제 index.html 파일을

생성해주세요.

하위 web 폴더 안에 있는  urls 파일에 들어가 import path 뒤에 include를 추가해 주시고

 

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


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

 

urlpatterns 안에 path('',include('app.urls')), 코드를 추가해주세요

그리고 상위 app폴더 안에 urls.py 파일을 생성해주시고 아래 코드를 입력해주세요.

 

from django.urls import path 
from . import views 

urlpatterns = [ 
path('',views.index), #아무것도 입력되지 않은 주소에 대해서 views의 index 참고 
]

 

그리고 저장을 해주시고 웹을 새로고침 해주시면 화면에 아무것도 안나오는걸 확인할수 

있어요. 아무것도 안써서 그런거에요 index.html 에 아무거나 써보시면 뜨는걸 확인할 수 있어요.

 

이제부터 index를 확장 해보기전에 위에 순서가 왜 이렇게 되는지 이해가 안가실수 있어요.

 장고는 모델 -> 폼 -> url -> 뷰 -> 템플릿 이라는 순서만 일단 알아두세요.

하위app 폴더 안에 base.html 파일을 먼저 생성해주세요.

 

<html>
<head>
    <meta charset="UTF-8">
    <title>app</title>
</head>
    <body>
         {% block content %}

            {% endblock %}
    </body>
</html>
 

 

그리고 기본 틀을 작성해주세요.

 

from django.shortcuts import render 
from .models import Post 

def index(request): 
    posts = Post.objects.all() 
    return render(request , 'app/index.html')

 

상위app폴더 안에 있는 views.py를 변경 해주고, Post에 글을 index로 불러오는거에요.

 

{% extends 'app/base.html' %}

{% block content %}


{% if user.username %}
{{ user.first_name }}
{% endif %}
<h1><a href="{% url 'post_list' %}">Post 리스트</a></h1>
        {% for post in posts %}
           <h1> {{ post.text }}</h1>
            {{ post.published_date  }}
        {% endfor %}
{% endblock %}

 

extends로 base 과 index를 확장 시켜주면

처음에 등록한 글이 날짜와 함께 보일꺼에요