04/04
실제 DB와 연결
블로그 만들기
SLUG?
장고(Django)의 제네릭 뷰(Generic Views)는
개발자가 반복되는 작업을 최소화하고
코드를 재사용할 수 있도록 도와주는 기능입니다.
제네릭 뷰는 일반적인 웹 개발 패턴을 다루는
미리 구현된 뷰 클래스들을 제공합니다.
blog>urls.py
from django.urls import path
from . import views
app_name = "blog"
urlpatterns = [
path("",views.PostLV.as_view(),name="index"),
path("post/",views.PostLV.as_view(),name="post_list"),
#path("post/<slug:slug>",views.PostLV.as_view(),name="post_detail"),
re_path(r'post/(?P<slug>[-\w
#re_path 정규표현식을 이용하면 한글도 사용 가능
# Example:
]
blog > views.py
from django.shortscuts import render
from .models import Post
from django.views.generic import ListView, DetailView, ArchiveIndexView,YearArchiveView, MonthArchiveview,
class PostLV(ListView):
model = Post
template_name = "blog/post_all.html" # blog/post_list.html
context_object_name = 'posts' # post_list
paginate_by = 1
class PostDV(DeatilView):
model = Post
template_name = "blog/post_detail.html"
#--- ArchiveView
class PostAV(ArchiveIndexView):
model = Post
date_field = 'modify_dt'
template_name = "blog/post_archive.html"
class PostTAV(ArchiveIndexView):
model = Post
date_field = 'modify_dt'
template_name = "blog/post_archive.html"
blog>templates>blog>post_all.html
<h1>BLOG POST LIST</h1>
<br>
{% for post in posts %}
<h3><a href="{{post.get_absolute_url}}">{{post.title}}</a></h3>
{{post.modify_dt|date:"Y년 N d일"}}
<p>{{post.content}}</p>
{ % endfor % }
<br>
<div>
<span>
{ % if page_obj.has_previous % }
<a href="?page={{page_obj.previous_page_number }}"
</span>
</div>
blog>templates>blog>post_detail.html
<p>
</p>
<p> </p>
blog>templates>blog>post_archive_day.html
blog>templates>blog>post_archive_month.html
blog>templates>blog>post_archive_year.html
blog>templates>blog>post_archive.html
<h1>Post Archive for {{% year|date:"Y" %}} </h1>
<ul>
{ % for date in date_list % }
<li style="display: inlin;"><a href="{% url 'blog:post_year_archive' date|date:'Y'%}">Year-{{date|date : 'Y'}}</a></li>
{ % endfor % }
</ul>
{# m : 04, F : Aprill, M : Apr, b : apr # }
<br>
<div>
<ul>
{ % for post in object_list % }
<li>{{post.modify_dt
{{date_list}}
{{object_list}}
config>settings.py
config>urls.py
from config.views import Homeview
urlpatterns
config>views.py
from django.views.generic import TemplateView
class HomeView(TemplateView):
template_name = "home"