본문 바로가기
카테고리 없음

2024. 02. 26 Django 활용 사이트 이해하기

by gosikoca 2024. 2. 26.

오늘은 django 를 이용해서 사이트를 만들고 다양한 활용 옵션들을 직접 만들어 보면서 공부를 해보았습니다.

 

blog 라는 app을 만들어 아래와 같이 페이지를 구성했고 title 과 contents 로 구성되게 만들었습니다.  각 title 에 a tag를 이용하여 클릭할 수 있도록 하였고 클릭하면 blog_details 라는 페이지로 넘어가여 각 세부 페이지가 나오도록 만들었습니다.

 

페이지를 구성하는 templates 은 아래와 같습니다.

📦templates
 ┗ 📂blog
 ┃ ┣ 📜blog_create.html
 ┃ ┣ 📜blog_details.html
 ┃ ┣ 📜blog_list.html
 ┃ ┗ 📜blog_update.html

 

아래는 blog_details  페이지로 클릭되어 들어온 페이지 입니다. 

 

상세페이지에 이미지도 첨부할 수 있도록 구성하고 뒤로가기, 삭제하기, 수정하기 등 버튼으로 구성하였습니다.

 

이미지를 페이지에 업로드 하기 위해서는 몇가지 작업이 필요한데 먼저 tutorialdjango 폴더의 settings.py 파일에 아래의 media 와 관련하여 코드를 추가해 주어야 하고

STATIC_URL = "static/"  # 이 URL로 들어오면
STATICFILES_DIRS = [BASE_DIR / "static"]  # 여기서 처리해주겠다!

MEDIA_URL = "/media/"  # 이 URL로 들어오면
MEDIA_ROOT = BASE_DIR / "media"  # 여기서 처리해주겠다!

 

두번째로 tutorialdjango 페이지 에서 urls.py 에 아래 코드를 추가 해 주셔야 합니다.

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

 

이미지가 db로 저장되는 media 파일은 아래처럼 형성 되고 이미지를 업로드 하면 위의 코드에 따라 난수가 이름뒤에 붙어서 저장 됩니다.

📦media
 ┗ 📂blog
 ┃ ┗ 📂2024
 ┃ ┃ ┗ 📂02
 ┃ ┃ ┃ ┗ 📂26
 ┃ ┃ ┃ ┃ ┣ 📜zoom_BG.png
 ┃ ┃ ┃ ┃ ┣ 📜zoom_BG_FqtuwYt.png
 ┃ ┃ ┃ ┃ ┗ 📜zoom_BG_icn3gaI.png

 

 

수정하기를 누르면 blog_update 라는 함수와 연결되어 아래페이지 양식을 통하여 페이지 수정이 가능하게 하였고 이는 기본 form을 활용하였습니다.