240405 Blog 앱 개발

송용진·2024년 4월 5일

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"
profile
개발자

0개의 댓글