J1Yun
ZU-TECHLOG
J1Yun
전체 방문자
였늘
μ–΄μ œ
  • πŸ“‘ Category (135)
    • Algorithm (61)
      • πŸ“š Concept (6)
      • πŸ“˜ Baekjoon Judge (53)
      • πŸ“— Programmers (2)
    • Computer Science (42)
      • πŸ”’ Operating System (14)
      • πŸ“‘ Network (15)
      • πŸ’Ύ Database (8)
      • 🧩 Design Pattern (4)
      • πŸ”‘ Security (1)
    • Activities (12)
      • 🦁 λ©‹μŸμ΄μ‚¬μžμ²˜λŸΌ 9κΈ° (6)
      • πŸ’» SWλ§ˆμ—μŠ€νŠΈλ‘œ 13κΈ° (6)
    • Infra (1)
      • ☁️ AWS (1)
    • Languages (1)
      • πŸ’™ Python (1)
    • Backend (7)
      • πŸ”΅ Django (4)
      • 🟒 Node.js (3)
    • Ect. (8)
      • πŸ’¬ Talk (0)
      • πŸ—‚οΈ 개발직ꡰ μ·¨μ—… μ€€λΉ„μžλ£Œ (8)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ
  • λ°©λͺ…둝

곡지사항

인기 κΈ€

졜근 λŒ“κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

250x250
hELLO Β· Designed By μ •μƒμš°.
J1Yun

ZU-TECHLOG

[Django] μž₯κ³  μ •μ νŒŒμΌ κ΄€λ¦¬ν•˜κΈ° - Static, Media
Backend/πŸ”΅ Django

[Django] μž₯κ³  μ •μ νŒŒμΌ κ΄€λ¦¬ν•˜κΈ° - Static, Media

728x90

μ •μ νŒŒμΌ μ΄λž€?

  μ •μ νŒŒμΌμ€ HTML을 μ œμ™Έν•˜κ³  μ›Ή νŽ˜μ΄μ§€λ₯Ό λ Œλ”λ§ ν•  λ•Œ ν•„μš”ν•œ 좔가적인 νŒŒμΌμ„ μ˜λ―Έν•œλ‹€.

μ„œλ²„μ˜ 데이터듀이 μ–΄λŠμ •λ„ κ°€κ³΅λœ ν›„ λ³΄μ—¬μ§€λŠ” λ™μ νŒŒμΌκ³Ό 달리, μ„œλ²„μ— 미리 μ €μž₯λ˜μ–΄ μžˆμ–΄μ•Όν•˜λ©°, μ„œλ²„μ— μ €μž₯된 κ·ΈλŒ€λ‘œλ₯Ό μ„œλΉ„μŠ€ν•œλ‹€.

μž₯κ³ μ—μ„œ μ •μ νŒŒμΌμ€ μ•„λž˜μ˜ 두가지 파일둜 λΆ„λ₯˜λ  수 μžˆλ‹€.

  • Static 파일 : 이미지, Javascript, CSS처럼 κ°œλ°œμžκ°€ μ„œλ²„λ₯Ό κ°œλ°œν•  λ•Œ 미리 λ„£μ–΄ μ€€λΉ„ν•΄ 놓은 파일둜, μ„œλΉ„μŠ€ 쀑에 μΆ”κ°€λ˜κ±°λ‚˜ μˆ˜μ •λ˜μ§€ μ•Šκ³  κ³ μ •λ˜μ–΄ 있음
  • Media 파일 : μ‚¬μš©μžκ°€ μ—…λ‘œλ“œ ν•  수 μžˆλŠ” 파일둜, 파일 μžμ²΄λŠ” κ³ μ •λ˜μ–΄ μžˆμ§€λ§Œ μ–Έμ œ μ–΄λ–€ 파일이 제곡될 μ§€λŠ” μ˜ˆμΈ‘ν•  수 μ—†μŒ

 

Static 파일 관리

1. app 폴더 μ•„λž˜ static 폴더 생성 ν›„ 이미지/Javascript/CSS 파일 μ €μž₯

 

2. settings.py에 static 파일 등둝

STATIC_URL = '/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, '앱이름', 'static')
] # ν˜„μž¬ static νŒŒμΌλ“€μ΄ 어디에 μžˆλŠ”μ§€

STATIC_ROOT = os.path.join(BASE_DIR, 'static')  # static νŒŒμΌλ“€μ„ 어디에 λͺ¨μ„건지​

 

3. static 파일 λͺ¨μœΌκΈ°

$ python manage.py collectstatic

 

4. html에 static 파일 λ„μš°κΈ°

<!-- 이미지 -->
{% load static %}
<img src="{% static '경둜/νŒŒμΌμ΄λ¦„.png' %}" width="" height="" />

<!-- CSS -->
{% load static %}
<link rel="stylesheet" type="text/css" href="{% static '경둜/νŒŒμΌμ΄λ¦„.css' %}" />

<!-- Javascript --> 
{% load static %}
<script src="{% static '경둜/νŒŒμΌμ΄λ¦„.js' %}"></script>

 

Media 파일 관리

1. settings.py 에 media 파일 등둝

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

MEDIA_URL = '/media/'

 

2. urls.py에 media 파일 경둜 μ„€μ •

from django.config import settings
from django.config.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', home, name="home"),
    ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

 

3. models.py의 ν…Œμ΄λΈ” μ•ˆμ— media 파일 μ—…λ‘œλ“œλ₯Ό μœ„ν•œ 칼럼 μΆ”κ°€

image = models.ImageField(upload_to = "img/", blank=True, null=True) 
# settings.py에 λͺ…μ‹œλœ MEDIA_URL(/media/) μ•ˆμ— imgλΌλŠ” 폴더λ₯Ό λ§Œλ“€μ–΄ κ·Έ μ•ˆμ— μ €μž₯

 

4. DBμ—μ„œ μ›ν™œν•˜κ²Œ 이미지λ₯Ό 닀루기 μœ„ν•΄ pillow μ„€μΉ˜

$ pip install pillow

 

5. modelsκ°€ λ³€κ²½λ˜μ—ˆμœΌλ‹ˆ db.sqlite3, 0001_initial.py, 0001_initial.cpython-38 νŒŒμΌμ„ μ‚­μ œν•œ ν›„ λ‹€μ‹œ migration

$ python manage.py makemigrations
$ python manage.py migrate

 

6. html(a)에 media νŒŒμΌμ„ μ—…λ‘œλ“œ 받을 수 μžˆλŠ” form μΆ”κ°€

<form action="{% url 'urlλͺ…' %} method="post" enctype="multipart/form-data">
    {% csrf_token %}
    ...
    <p>사진: <input type="file" name="image"></p>
</form>

 

7. views.py의 ν•΄λ‹Ή ν•¨μˆ˜(a)에 μ—…λ‘œλ“œ 받은 media 파일 μ €μž₯을 μœ„ν•œ μ½”λ“œ μΆ”κ°€

new = ν…Œμ΄λΈ”λͺ…()
new.image = request.FILES['image']

 

8. html(b)에 media 파일 λ„μš°κΈ°

<img src="{{객체λͺ….image.url}}" width="" height="" />

 

728x90

'Backend > πŸ”΅ Django' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Django] μž₯κ³  CRUD κ΅¬ν˜„ - κ²Œμ‹œνŒ κΈ°λŠ₯  (2) 2021.07.07
[Django] μž₯κ³  models 및 DB 섀계 - Migration, Admin  (1) 2021.05.16
[Django] μž₯κ³  μ‹€μŠ΅/개발 ν™˜κ²½ μ€€λΉ„ν•˜κΈ° - ν”„λ‘œμ νŠΈ 및 μ•± 생성  (0) 2021.05.11
    'Backend/πŸ”΅ Django' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ 글이닀
    • [Django] μž₯κ³  CRUD κ΅¬ν˜„ - κ²Œμ‹œνŒ κΈ°λŠ₯
    • [Django] μž₯κ³  models 및 DB 섀계 - Migration, Admin
    • [Django] μž₯κ³  μ‹€μŠ΅/개발 ν™˜κ²½ μ€€λΉ„ν•˜κΈ° - ν”„λ‘œμ νŠΈ 및 μ•± 생성
    J1Yun
    J1Yun
    개발 κ΄€λ ¨ 기술 및 곡뢀 λ‚΄μš© 기둝μž₯

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”