Django에서 양식 만들기
1단계: django 프로젝트 설정
다음 명령을 사용하여 django 프로젝트를 만듭니다.
django-admin startproject DjangoForms
2단계: 프로젝트에서 앱 만들기
cd
를 프로젝트 디렉토리에 넣고 다음 명령을 입력합니다python manage.py startapp demo
3단계: 양식 만들기 😄
정상적인 형태 만들기
먼저 일반 양식을 만드는 방법을 보여드리겠습니다(즉, 이 양식은 어떤 모델에도 연결되어 있지 않습니다).
forms.py
라는 파일을 만듭니다.from django import forms
forms.Form
class ContactForm(forms.Form)
from django import forms
from django.core.validators import MaxLengthValidator
class ContactForm(forms.Form):
name = forms.CharField()
email = forms.EmailField()
mobile = forms.CharField(
validators=[MaxLengthValidator(10)]
)
we can use form.TypeField for the fields Type can be anything like Char, Email, Integer,Float etc ...
and also note that we are adding MaxLengthValidator to the validators of mobile field this ensures that when the form is submitted the length of value of mobile field is less than 10
이제 양식을 렌더링할 보기를
views.py
에 만들 수 있습니다.# views.py
from .forms import ContactForm
def contact_form(request):
form = ContactForm() # <-- Initializing the form
# sending the form to our template through context
return render(request, "form.html", {"contactform": form})
보기를 urls.py에 매핑
# urls.py of the project
from django.contrib import admin
from django.urls import path
from demo.views import contact_form
urlpatterns = [
path('admin/', admin.site.urls),
path('', contact_form),
]
form.html
에서 양식 렌더링 템플릿에서 양식을 렌더링하는 두 가지 방법이 있습니다.
form.as_p
를 사용한 렌더링 <form method="POST" action="">
{{form.as_p}}
<button>submit</button>
</form>
python manage.py runserver
를 사용하여 개발 서버를 실행합니다.http://localhost:8000
로 이동하면 아래와 같이 양식이 표시됩니다.양식에 의해 제출된 데이터 처리
from django.shortcuts import render
# Create your views here.
from .forms import ContactForm
def contact_form(request):
form = ContactForm() # <-- Initializing the form
if request.method == 'POST':
form = ContactForm(request.POST) # <-- populating the form with POST DATA
if form.is_valid(): # <-- if the form is valid
print("[**] data received [**]") # <-- we handle the data
print(form.cleaned_data['name'])
print(form.cleaned_data['email'])
print(form.cleaned_data['mobile'])
# sending the form to our template through context
return render(request, "form.html", {"contactform": form})
양식이 성공적으로 제출되면 터미널에 기록된 데이터가 표시됩니다.
# output in the terminal
March 26, 2022 - 20:06:02
Django version 3.0.7, using settings 'DjangoForms.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[**] data received [**]
blog
[email protected]
9999999999
그러나 양식에 입력한 데이터가 올바르지 않으면 오류 메시지가 표시됩니다.
휴대폰 번호가 10자 이상이므로 오류 메시지가 다음 형식으로 표시되는 것을 볼 수 있습니다.
양식을 렌더링하는 다른 방법
각 필드를 수동으로 렌더링
<form method="POST" action="">{% csrf_token %}
<div>
{{ form.name }}
<!---Rendering the error message--->
{% for error in form.name.error %}
{{error}}
{% endfor %}
</div>
<div>
{{ form.email }}
<!---Rendering the error message--->
{% for error in form.email.error %}
{{error}}
{% endfor %}
</div>
<div>
{{ form.phone }}
<!---Rendering the error message--->
{% for error in form.phone.error %}
{{error}}
{% endfor %}
</div>
<button>submit</button>
</form>
Reference
이 문제에 관하여(Django에서 양식 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rohit20001221/creating-forms-in-django-5797텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)