django 만들기
django-admin startproject ~이름
LANGUAGE_CODE = 'ko-kr'
TIME_ZONE = 'Asia/Seoul'
USE_I18N = True
USE_TZ = True
settings.py의 timezone과 언어를 한국 기준으로 바꿔준다
장고에서 데이터베이스와 연결되는 작업은 models.py에서 한다.
class Post(models.Model):
title = models.CharField(max_length=30)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
# author 추후 작성 예정
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return f'[{self.pk}]{self.title}{self.created_at}'
제목,내용,생성날짜,수정날짜를 정의해줬다.
결과창

localhost의 뒷 주소를 어떻게 할 것이냐를 정의해줌
첫 startproject 내의 urls.py의 url 경로를 설정해준다.
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/',include('blog.urls'))
]
admin은 장고에서 기본적으로 제공해주는 계정 및 데이터베이스 관리 사이트이다
초기에 설정 해놓은 post 모델및 user groups 를 관리를 해준다
초기에 만들어놓은 blog.url을 include 하여 세팅시켜준다
blog 디렉토리의 url를 불러오는 것이니
blog/ urls.py를 만들어준다
urlpatterns = [
path('',views.index,name='post-list'),
]
경로는 아무것도 없이 (왜냐면 startapp에서 blog로 설정을 해줬으니 공백으로 두고)
index라는 view의 요소로 들고 온다고 지정해준다.
그럼 이제 views에서 index를 지정해주면 된다
def index(request):
posts = Post.objects.all()
return render(request,'blog/index.html',{'posts':posts})
model에서 설정한 post를 불러오고 / 그 안에있는 데이터를 모두 가져오게 한다 - object.all()
그다음 return 해주는데 , blog/index.html로 가주는데 context는 posts로 부를수 있게 해달라고 정해주면 된다.
마지막 index.html
<body>
<h1>Blog</h1>
{% for post in posts %}
<h3>{{ post.title }}</h3>
{% endfor %}
</body>
</html>
기존 파이썬과 같이 for문을 돌리면서 admin에서 작성한 게시물 타이틀을 모두 출력해주게끔 명령어를 입력