from django import forms
class <form name>(forms.form):
<variable name> = forms.<formfield>
from django import forms
class <formname>(forms.ModelForm):
<form>
<lable>이름</lable>
<input type="text">
</form>
<form>
<label for="title">제목</label>
<input type="text" id="title">
</form>
<form>
<label>제목
<input type="text">
</label>
</form>
<form>
<label for="title">제목</label>
<input type="text" id="title" name="title">
</form>
# example
<label for="email">이메일</label>
<input type="email" id="email" name="email">
<form action="register" method="post">
<label for="name">이름</label>
<input type="text" id="name" name="name">
<input type="submit" value="제출하기">
</form>
GET 방식으로 지정하면 유저가 데이터를 입력하고 전송했을 때 URL 뒤에 쿼리 스트링(Query String) 형태로 데이터가 전달
GET은 서버에서 데이터를 가져오는 요청을 보낼 때 사용
POST 방식은 전송되는 URL에는 표시되지 않고 서버로 전송하는 메세지 안쪽에 데이터를 넣어서 전달
POST는 서버의 데이터를 변경하거나 다른 로직을 수행할 때 사용
| 필드 | 설명 | 옵션 |
|---|---|---|
| max_length | ||
| CharField | 문자열 입력 | min_length |
| strip | ||
| EmailField | 이메일 입력 | CharField와 같은 옵션 |
| IntegerField | 정수 입력 | max_value |
| min_value | ||
| BooleanField | True, False 입력 | 빈 값일 경우 False |
| DateField | 날짜 형식을 입력 | input_formats |
| TimeField | 시간 형식을 입력 | DateField와 같은 옵션 |
| DateTimeField | 날짜/시간 형식을 입력 | DateField와 같은 옵션 |
| 인수 | 설명 |
|---|---|
| label | label 항목에 적힐 이름을 지정 |
| label_suffix | label 다음 콜론(:)이 붙어서 표시되는데 이 값을 변경 |
| help_text | 입력에 도움이 되는 문자열을 입력 필드 밑에 표시 |
| widget | 필드가 사용할 사용자 입력 UI, 즉 위젯을 지정 |
from django import forms
from .models import Page # 사용할 모델을 가져옵니다.
class PageForm(forms.ModelForm):
class Meta:
model = Page # 모델 폼에서 사용할 모델과 필드를 명시합니다.
fields = ['title', 'content', 'feeling', 'score', 'dt_created']
widgets = {'title': forms.TextInput(attrs={'class':'title',
'placeholder':'제목을 입력하세요'}),
'content': forms.Textarea(attrs={'placeholder': '내용을 입력하세요'})
}
# form.css
.title {
width: 400px;
}