(venv) λ python manage.py runserver
admin.py에 Post 모델 추가하기.
blog/admin.py 파일을 열고 두 줄만 추가하여 관리자 페이지에 Post 모델을 등로합니다.
blog/admin.py
from django.contrib import admin
from .models import Post
admin.site.register(Post)
posts > add > ADD POST
임으로 포스트를 2개 생성하였다.
models.py에 Post 모델을 정의하고 admin.py코드에 두 줄을 추가한 것만으로 관리자 페이지에 새로운 포스트를 작성할 수 있는 기능이 추가되었습니다.
blog/models.py에 클래스 2줄 추가.
def __str__(self):
return f'[{self.pk}]{self.title}'
pk는 각 레코드의 고유값
django_py/settings.py
TIME_ZONE = 'UTC' 을 Asia/Seoul
Use_TZ 는False
Time이 한국 기준으로 바뀌어 표준시 시간인 9시간에서 바뀌었다.
포스터를 작성하면 자동으로 작성 시각을 저장되도록 설정.
blog/models.py 에 추가해준다
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
수정했으니 makemigrations으로 장고에게 알려주고, migrate로 데이터베이스에 반영해야 한다.
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
시간란이 사라졌다!
COMMIT 모델을 생성하고 시간 설정하기.
(venv) λ git add .
C:\github\hong_tae (main -> origin)
(venv) λ git commit -m "Post 모델을 생성하고 시간 설정하기"
[main 57255b7] Post 모델을 생성하고 시간 설정하기
5 files changed, 70 insertions(+), 3 deletions(-)
create mode 100644 blog/migrations/0001_initial.py
create mode 100644 blog/migrations/0002_auto_20210223_1801.py
C:\github\hong_tae (main -> origin)
(venv) λ git push
Username for 'https://github.com': gusxoqkqh1
Password for 'https://gusxoqkqh1@github.com':
To https://github.com/gusxoqkqh1/hong_tae.git
웹 페이지에 http://127.0.0.1:8000/blog 치면 404 오류가 난다
page not found 가 뜬다 거기에는 admin/에 해당하는 내용밖에 없다고 불평고 있다.
django.prj/urls.py로 가보자
path('blog/', include('blog.urls')) 추가
from django.contrib import admin
from django.urls import include,path
# from django.urls import path
urlpatterns = [
path('blog/', include('blog.urls')),
path('admin/', admin.site.urls),
]
아직 Blog 앱 폴더에는 urls.py가 없다. 새로 urls.py를 만들고 내용 추가.
from django.urls import path
from . import views # 현재 폴더에 있는 views.py를 사용할 수 있게 가져와라
urlpatterns = [
path('', views.index),
]
blog/views.py
from django.shortcuts import render
def index(request):
return render( # ranger() 함수를 사용해 템플릿 폴더에서 blog 폴더의 index.html 파일을 찾아 방문자에게 보여줌
request,
'blog/index.html',
)
doesNotExist at /blog/
템플릿을 찾을 수 없다는 오류가 나온다.
템플릿에 아직 index.html을 생성하지 않았기 떄문입니다.
<주의가 필요>
blog > {templates > blog > index.html]
templates , blog 디렉토리 추가 후 그 밑에 index.html 파일 추가
간단한 인덱스.html 문서 작성
<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>Blog</title>
</head>
<body>
<h1>Blog</h1>
</body>
</html>
<주의>
blog/views.py
from django.shortcuts import render
from .models import Post
def index(request):
posts = Post.objects.all()
return render(
request,
'blog/index.html',
{
'posts' : posts,
}
)
# Create your views here.