Image Upload

1. ํ•„์š”ํ•œ package ์„ค์น˜ํ•˜๊ธฐ

1-1. ImageField

  • ๋‹จ์ˆœ ImageField๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” pillow ํŒจํ‚ค์ง€๊ฐ€ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋‹ค.

$ pip install pillow

1-2. resizing

  • Resizing์„ ์œ„ํ•ด์„œ๋Š” pilkit, django-imagekit ํŒจํ‚ค์ง€๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

$ pip install pilkit django-imagekit

2. model์— image column ์ •์˜

posts > models.py

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    image = models.ImageField(blank=True)
    # DB ์ €์žฅ x, ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๋ฉด ์ž˜๋ผ์„œ ํ‘œํ˜„
    image_thumbnail = ImageSpecField(source='image',
                                      processors=[ResizeToFill(300, 300)],
                                      format='JPEG',
                                      options={'quality': 60})
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    #์ข‹์•„์š” ๊ธฐ๋Šฅ
    like_users = models.ManyToManyField(settings.AUTH_USER_MODEL,
                                    related_name='like_posts')

3. view์— request.FILES ์ถ”๊ฐ€

posts > views.py

4. settings.py ์ˆ˜์ •

5. urls.py์— ๊ฒฝ๋กœ ์ถ”๊ฐ€

6. Templates ์ˆ˜์ •

forms.html

detail.html

migrations

django-imagekit library

Image ๋‚ด๋ถ€์ ์œผ๋กœ thumbnail์— ๋งž๊ฒŒ ์ž๋ฅด๊ธฐ

Download & usage

https://github.com/matthewwithanm/django-imagekitarrow-up-right

Installation

์›๋ณธ ์ž์ฒด๋ฅผ ์ž˜๋ผ์„œ ์ €์žฅ

Last updated

Was this helpful?