우선 로그인과 관련된 기능을 만들기 앞서 url 관리에 대해 살펴봅시다. 로그인과 관련된 app (accounts)을 하나 더 만들 예정인데 여기서 project1/urls.py 에 siteapp, accounts와 관련된 url이 여러 가지 섞여있으면 복잡합니다. 그렇기 때문에 url 관리를 위해 다음과 같은 단계를 거칩니다. (아직 accounts는 만들지 않았기에 siteapp만을 이용하여 설명하겠습니다.) 1. siteapp에 urls.py를 만든다 from django.contrib import admin from django.urls import path from . import views urlpatterns = [ path('',views.home, name="home"), path('de..
이번에는 템플릿 상속을 시켜보겠습니다. 템플릿 상속이란, 어떤 페이지를 꾸미고 싶을 때 그 때마다 적용되는 기본 템플릿을 갖고 오는 것을 의미합니다. 우선 templates 디렉토리에 base.html을 하나 만듭니다. 그리고 bootstrap 등을 활용하여 기본으로 뭔가 있었으면 좋겠다는 걸 갖고와 줍니다. 저는 그냥 navbar에 있는 첫번째 녀석을 갖고와 필요없는 부분만 지워주겠습니다. 그리고 추후 만들어줄 부분도 미리 링크 없이 이름만 적어주었습니다. ( Bootstrap 4.3v 입니다. ) Menu Home (current) {% if user.is_authenticated %} {{user.username}}님 반갑습니다. 새 글 작성 로그아웃 {% csrf_token %} {% else %..
앞선 포스팅에 이어 detail페이지와 base 페이지를 만들어보겠습니다. home에서 post 제목을 링크로 받아 본문을 보여주는 것을 해보도록 하겠습니다. 우선 그 전에 본문을 보이려면 뭔가 내용이 좀 더 알차면 좋을 것 같아 날짜도 추가해주겠습니다. models.py로 들어가 다음을 추가해 줍니다. django에서 기본으로 제공하는 timezone이라는 module을 import하고, 날짜를 기록할 date를 추가해줍니다. 그리고 default 값으로 현재 시간을 나타내는 timezone.now를 추가해줍니다. (미국시간 기준입니다!) 이제 templates에 detail.html을 추가하고, url에 다음과 같이 적어줍니다. urlpatterns = [ path('admin/', admin.sit..
지난 번에 이어서 설명하겠습니다. 우선 django는 MTV 패턴을 지니고 있습니다. 이것은 MVC 패턴과 비슷한 것인데 model, template, view 의 약어로 model을 이용해 내가 화면에 띄우고 싶은 model을 담은 객체를 만들고 (models.py -> class 생성), template을 이용해 화면에 띄우고, (html 이용) view를 이용해 html에 동작할 함수를 짭니다. (views.py) 우선 모든 CS와 관련된 처음은 hello world 부터 출발하니 저도 한 번 식상하지만 hello world를 띄워보겠습니다. VS code를 켜고, 가상환경이 있는 디렉토리로 가서 가상환경을 켭니다. 우선은 hello world만 출력할 것이니 model은 만들지 않겠습니다. hel..
django에는 project와 app이라는 것이 있습니다. django 공식문서에 의하면 project는 다음과 같은 뜻을 가집니다. "장고 인스턴스에 대한 모든 설정을 담은 파이썬 패키지 – 디렉토리 또는 코드 –. 데이터베이스 설정, 장고 설정 및 애플리케이션 설정 등을 포함." django에서 모든 설정을 하기 위한 기본 패키지입니다. 요리를 하기 위해 재료가 담긴 냉장고 같은 느낌이네요. 이제 기본 재료가 담긴 냉장고를 깔아봅시다. VS code를 켜고 자신이 정한 가상환경을 켠 뒤 다음과 같이 입력합니다. (project1 : project 이름) django-admin startproject project1 이렇게 project1 이라는 이름의 project가 하나 만들어졌습니다. 이제 냉장..