Django for KN(Koinonia)
- 해당 문서는 사귐의 교회 청소년부 출석부 프로젝트를 위한 Django 학습 내용과 개발 과정을 기록함
실습
- item 목록 및 간단 검색페이지
- 동작 정의
- 웹에서 검색창에 데이터를 입력(get 요청)
- 라우팅에 의해 Instagram view.py의 post_list 함수에 전달
- Templates의 post_list.html 로직에 의해 응답값 출력

from django.conf.urls.static import static
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
urlpatterns = [
path('instagram/', include('instagram.urls')),
]
from . import views
from django.urls import path
urlpatterns = [
path('', views.post_list),
]
- Project urls.py과 instagram urls.py의 라우팅
from django.shortcuts import render
from .models import Post
def post_list(request):
qs = Post.objects.all()
q = request.GET.get('q', '')
if q:
qs = qs.filter(message__icontains=q)
return render(request, 'instagram/post_list.html', {
'post_list': qs, 'q':q,
})
- 라우팅에 의해 GET 요청값을 Instagram view.py의 post_list 함수에 전달 및 q에 대한 처리
<table class="table table-bordered table-hover">
<tbody>
{% for post in post_list %}
<tr>
<td>
{% if post.photo %}
<img src="{{ post.photo.url }}" style="width: 100px;"/>
{% else %}
No Photo
{% endif %}
</td>
<td>
{{post.message}}
</td>
</tr>
{% endfor %}
</tbody>
</tabel>
- Templates의 post_list.html 로직에 의해 요청값 q를 처리하고 응답값 출력
