Django Form Attribute

Ryu Honggyu·2024년 8월 29일

Django

목록 보기
14/19
post-thumbnail

Attribute 상세

  • <form>: 클라이언트에서 서버로 데이터 전송 시 사용되는 다양한 속성을 제공.
  • 최근 Django 프로젝트 중 form 태그로 enctype="multipart/form-data" 를 넣는 것을 깜빡해 이미지가 DB에 저장 안되는 이슈가 발생했었음.
  • 따라서 이전에 Django HTML Form 에서 작성한 속성에 관한 정보가 부족했다고 판단하여 보강함.

주요 속성 정리

속성설명
method서버로 데이터를 전송할 때 사용할 HTTP 메소드
action서버에서 요청을 처리할 URL 지정
target폼 제출 후 응답이 표시될 위치 지정
autocomplete자동 완성 기능 사용 여부
enctype데이터 전송 시 사용되는 인코딩 타입

method

  • 폼 데이터를 서버로 전송할 때 사용할 HTTP 메소드를 지정함.
설명
GET데이터를 URL의 쿼리 스트링으로 전송. 주로 데이터를 조회할 때 사용.
POST데이터를 요청 본문에 포함하여 전송. 주로 데이터를 생성하거나 업데이트할 때 사용.

<form action="/submit/" method="POST">

  • method="POST" 는 폼 데이터를 서버에 전송 시 HTTP POST 메소드를 사용하여 전송함을 의미.

action

  • 폼 데이터를 전송할 때 서버에서 요청을 처리할 URL을 지정함.

<form action="/process-data/" method="POST">

  • action="/process-data/" 는 사용자가 폼을 제출할 때 데이터를 /process-data/ URL로 전송함을 의미.

target

  • 폼 제출 후 응답이 표시될 위치를 지정함.
  • 기본값은 현재 있는 창이며, value 값에 다음 내용을 집어넣어 위치 지정 가능.
설명
_self현재 창이나 탭에 결과를 표시 (기본값)
_blank새 창이나 탭에 결과를 표시
_parent부모 프레임에 결과를 표시
_top최상위 프레임에 결과를 표시

<form action="/submit/" method="POST" target="_blank">

  • target="_blank" 는 폼 제출 후 새 창이나 탭에서 결과를 표시하도록 지정.

autocomplete

  • 폼 필드에 자동 완성 기능을 사용할 지의 여부를 지정함.
  • on은 자동 완성을 활성화, off는 비활성화.

<form action="/submit/" method="POST" autocomplete="off">

  • autocomplete="off" 는 자동 완성 기능을 비활성화해 이전에 입력했던 정보가 자동으로 채워지는 것을 막음.

enctype

  • 데이터를 전송할 때 사용되는 인코딩 타입을 지정함.
설명
application/x-www-form-urlencoded기본값으로, 모든 문자들이 URL 인코딩되어 전송됨. 공백은 +로 대체되고, 특수 문자는 퍼센트 인코딩(%xx)됨.
multipart/form-data파일 업로드 시 데이터를 여러 부분으로 나누어 바이너리 데이터를 포함한 데이터를 전송할 수 있음. 이미지 등의 업로드 기능에 꼭 필요.
text/plain인코딩 없이 데이터를 전송. 공백은 +로 대체되지 않고, 특수 문자도 인코딩되지 않음.

<form action="/submit/" method="POST" enctype="application/x-www-form-urlencoded">

  • enctype="application/x-www-form-urlencoded" 는 폼 데이터를 URL 인코딩 방식으로 서버에 전송함.

<form action="/upload/" method="POST" enctype="multipart/form-data">

  • 위 예제에서 enctype="multipart/form-data"는 폼 데이터와 바이너리 데이터를 함께 전송하도록 만듬.

<form action="/submit/" method="POST" enctype="text/plain">

  • enctype="text/plain"은 폼 데이터를 인코딩 없이 그대로 서버에 전송함.

참고 자료

  • HTML Form Attributes W3 School Document [링크]
profile
알고리즘 & 웹 & CS & AI

0개의 댓글