찾다
백엔드 개발파이썬 튜토리얼Python을 사용하여 Django에서 직사각형 이미지를 검증하는 방법

How to Validate Rectangular Images in Django Using Python

Django 프로젝트에서 이미지 업로드 작업을 할 때 업로드된 이미지가 정사각형이 아닌 직사각형인지 확인하는 등 특정 크기를 적용해야 하는 상황이 있을 수 있습니다. 이는 프로필 헤더, 배너 또는 정사각형이 아닌 형식이 필요한 미디어에 특히 유용할 수 있습니다.

이 글에서는 Django의 유효성 검사 시스템과 Pillow 라이브러리를 사용하여 간단한 솔루션을 살펴보겠습니다.

전제 조건

솔루션을 구현하기 전에 다음 종속성이 설치되어 있는지 확인하세요.

  1. Django(웹 프레임워크 기능용)
  2. 베개(이미지 처리용)

Pillow가 설치되어 있지 않은 경우 다음을 사용하여 추가할 수 있습니다.

python -m pip install pillow

유효성 검사기 작성

업로드된 이미지가 직사각형인지 확인하려면 이미지의 너비높이를 확인해야 합니다. 두 치수가 동일하면 이미지가 정사각형이라는 의미이므로 유효성 검사 오류가 발생합니다.

사용자 정의 유효성 검사기의 코드는 다음과 같습니다.

from django.core.exceptions import ValidationError
from PIL import Image

def validate_rectangular_image(image):
    """
    Validator to ensure an uploaded image is rectangular and not square.
    """
    image = Image.open(image)  # Open the uploaded image using Pillow
    width, height = image.size  # Extract dimensions

    if width == height:  # Check if image is square
        raise ValidationError("Uploaded image must be rectangular (not square).")

    return image

Django 모델과 유효성 검사기 통합

Django 애플리케이션에서 이 유효성 검사기를 사용하려면 모델 필드에 추가하면 됩니다. 예를 들어, 사용자 프로필 배너 모델에 ImageField가 있다고 가정해 보겠습니다.

from django.db import models
from .validators import validate_rectangular_image  # Import the custom validator

class Profile(models.Model):
    name = models.CharField(max_length=100)
    banner_image = models.ImageField(
        upload_to='banners/', 
        validators=[validate_rectangular_image],
        help_text="Please upload a rectangular image for the banner."
    )

    def __str__(self):
        return self.name

작동 방식:

  • banner_image 필드에 파일이 업로드될 때마다 유효성 검사_직사각형_이미지 함수가 호출됩니다.
  • 이미지가 정사각형인 경우 ValidationError가 발생하여 파일이 저장되지 않습니다.
  • 직사각형 이미지만 유효성 검사를 통과하고 성공적으로 업로드됩니다.

양식의 유효성 검사 오류 처리

이미지 업로드에 Django 양식을 사용하는 경우 잘못된 이미지를 제출하면 사용자에게 오류가 표시됩니다.

예를 들어 간단한 양식은 다음과 같습니다.

from django import forms
from .models import Profile

class ProfileForm(forms.ModelForm):
    class Meta:
        model = Profile
        fields = ['name', 'banner_image']

사용자가 정사각형 이미지를 업로드하면 다음 오류 메시지가 표시됩니다.

"업로드된 이미지는 직사각형(정사각형이 아님)이어야 합니다."

유효성 검사기 테스트

정사각형 이미지와 직사각형 이미지를 모두 업로드하여 기능을 테스트할 수 있습니다.

  1. 정사각형 이미지(예: 300x300):
    유효성 검사기는 파일을 거부하고 ValidationError를 발생시킵니다.

  2. 직사각형 이미지(예: 400x300):
    유효성 검사기가 파일을 수락하면 이미지가 성공적으로 업로드됩니다.

최종 메모

이 접근 방식을 사용하면 Django 애플리케이션에서 이미지 크기 요구 사항을 원활하게 적용할 수 있습니다. Pillow 라이브러리를 사용하면 이미지 크기 작업이 쉬워지고 Django의 유효성 검사 시스템을 사용하면 많은 노력 없이 맞춤 로직을 통합할 수 있습니다.

주요 시사점:

  • Pillow를 사용하여 이미지 크기를 추출합니다.
  • 업로드된 이미지가 기준에 맞지 않으면 ValidationError가 발생합니다.
  • Django 모델에 유효성 검사기를 통합하여 데이터 무결성을 보장합니다.

Django와 Pillow를 결합하면 웹 애플리케이션의 품질을 향상시키는 강력하고 유연한 이미지 업로드 규칙을 만들 수 있습니다.

즐거운 코딩하세요! ?

위 내용은 Python을 사용하여 Django에서 직사각형 이미지를 검증하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Linux 터미널에서 Python 버전을 볼 때 발생하는 권한 문제를 해결하는 방법은 무엇입니까?Linux 터미널에서 Python 버전을 볼 때 발생하는 권한 문제를 해결하는 방법은 무엇입니까?Apr 01, 2025 pm 05:09 PM

Linux 터미널에서 Python 버전을 보려고 할 때 Linux 터미널에서 Python 버전을 볼 때 권한 문제에 대한 솔루션 ... Python을 입력하십시오 ...

HTML을 구문 분석하기 위해 아름다운 수프를 어떻게 사용합니까?HTML을 구문 분석하기 위해 아름다운 수프를 어떻게 사용합니까?Mar 10, 2025 pm 06:54 PM

이 기사에서는 HTML을 구문 분석하기 위해 파이썬 라이브러리 인 아름다운 수프를 사용하는 방법을 설명합니다. 데이터 추출, 다양한 HTML 구조 및 오류 처리 및 대안 (SEL과 같은 Find (), find_all (), select () 및 get_text ()와 같은 일반적인 방법을 자세히 설명합니다.

파이썬 객체의 직렬화 및 사제화 : 1 부파이썬 객체의 직렬화 및 사제화 : 1 부Mar 08, 2025 am 09:39 AM

파이썬 객체의 직렬화 및 사막화는 사소한 프로그램의 주요 측면입니다. 무언가를 Python 파일에 저장하면 구성 파일을 읽거나 HTTP 요청에 응답하는 경우 객체 직렬화 및 사태화를 수행합니다. 어떤 의미에서, 직렬화와 사제화는 세계에서 가장 지루한 것들입니다. 이 모든 형식과 프로토콜에 대해 누가 걱정합니까? 일부 파이썬 객체를 지속하거나 스트리밍하여 나중에 완전히 검색하려고합니다. 이것은 세상을 개념적 차원에서 볼 수있는 좋은 방법입니다. 그러나 실제 수준에서 선택한 직렬화 체계, 형식 또는 프로토콜은 속도, 보안, 유지 보수 상태 및 프로그램의 기타 측면을 결정할 수 있습니다.

Tensorflow 또는 Pytorch로 딥 러닝을 수행하는 방법은 무엇입니까?Tensorflow 또는 Pytorch로 딥 러닝을 수행하는 방법은 무엇입니까?Mar 10, 2025 pm 06:52 PM

이 기사는 딥 러닝을 위해 텐서 플로와 Pytorch를 비교합니다. 데이터 준비, 모델 구축, 교육, 평가 및 배포와 관련된 단계에 대해 자세히 설명합니다. 프레임 워크, 특히 계산 포도와 관련하여 주요 차이점

파이썬의 수학 모듈 : 통계파이썬의 수학 모듈 : 통계Mar 09, 2025 am 11:40 AM

Python의 통계 모듈은 강력한 데이터 통계 분석 기능을 제공하여 생물 통계 및 비즈니스 분석과 같은 데이터의 전반적인 특성을 빠르게 이해할 수 있도록 도와줍니다. 데이터 포인트를 하나씩 보는 대신 평균 또는 분산과 같은 통계를보고 무시할 수있는 원래 데이터에서 트렌드와 기능을 발견하고 대형 데이터 세트를보다 쉽고 효과적으로 비교하십시오. 이 튜토리얼은 평균을 계산하고 데이터 세트의 분산 정도를 측정하는 방법을 설명합니다. 달리 명시되지 않는 한,이 모듈의 모든 함수는 단순히 평균을 합산하는 대신 평균 () 함수의 계산을 지원합니다. 부동 소수점 번호도 사용할 수 있습니다. 무작위로 가져옵니다 수입 통계 Fracti에서

아름다운 수프로 파이썬에서 웹 페이지를 긁어 내기 : 검색 및 DOM 수정아름다운 수프로 파이썬에서 웹 페이지를 긁어 내기 : 검색 및 DOM 수정Mar 08, 2025 am 10:36 AM

이 튜토리얼은 간단한 나무 탐색을 넘어서 DOM 조작에 중점을 둔 아름다운 수프에 대한 이전 소개를 바탕으로합니다. HTML 구조를 수정하기위한 효율적인 검색 방법과 기술을 탐색하겠습니다. 일반적인 DOM 검색 방법 중 하나는 EX입니다

인기있는 파이썬 라이브러리와 그 용도는 무엇입니까?인기있는 파이썬 라이브러리와 그 용도는 무엇입니까?Mar 21, 2025 pm 06:46 PM

이 기사는 Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask 및 요청과 같은 인기있는 Python 라이브러리에 대해 설명하고 과학 컴퓨팅, 데이터 분석, 시각화, 기계 학습, 웹 개발 및 H에서의 사용에 대해 자세히 설명합니다.

Python으로 명령 줄 인터페이스 (CLI)를 만드는 방법은 무엇입니까?Python으로 명령 줄 인터페이스 (CLI)를 만드는 방법은 무엇입니까?Mar 10, 2025 pm 06:48 PM

이 기사는 Python 개발자가 CLIS (Command-Line Interfaces) 구축을 안내합니다. Typer, Click 및 Argparse와 같은 라이브러리를 사용하여 입력/출력 처리를 강조하고 CLI 유용성을 향상시키기 위해 사용자 친화적 인 디자인 패턴을 홍보하는 세부 정보.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.