일반적으로 CSS/JavaScript 파일을 별도의 파일로 분리한다. 그 이유는 HTML 응답 body 크기를 줄일 수 있고 브라우저 캐싱 기능을 통해 같은 파일을 서버로부터 다시 읽어들이지 않아서 응답 속도를 향상시킬 수 있기 때문이다.
클라이언트에서 사용자에게 입력폼을 제공하고, 이를 서버로 전송하고자 할 때 사용
HTML 웹페이제에서는 <form></form> 태그를 통해 입력폼을 구성하고 submit시에 지정한 action URL로 데이터 전송을 시도한다.
<form action="" method="POST">
<input type="text" />
<textarea></textarea>
<select></select>
<input type="checkbox">
<input type="radio">
</form>
HTML
<form>태그 필수 속성!
action: 요청을 보낼 주소method: 전송 방식 (GET, POST)enctype: 인코딩 방식 (POST요청에서만 유효)
1) 요청 URL 뒤에 ?를 붙이고, 인자를 실어서 보내기
- 이 인자를 Query String 인자라고 부른다.
- GET요청에서 주로 사용하기에 GET 인자라고도 한다.
2) 요청 Body에 모든 인코딩의 인자를 실어서 보내기
request.GET
request.POST
request.FILES
클라이언트로부터 전달받은 값들에 대한 유효성 검사를 수행하고, 이를 데이터베이스에 저장하는 등의 처리. HTML Form을 생성하는 기능을 제공.
주요 역할
1. 입력폼 HTML 생성
2. 입력폼 값에 대한 유효성 검증 및 값 변환
3. 검증을 통과한 값들을 dict형태로 제공
# myapp/forms.py
from django import forms
class PostForm(forms.Form):
title = forms.CharField()
content = forms.CharField(widget=form.Textarea)
하나의 URL (하나의 View)에서 빈 폼을 보여주는 역할과 폼을 통해 입력된 값을 검증하고 저장하는 역할 두가지를 모두 수행