Django Academy · บทเรียน

กำหนด forms.Form

ประกาศฟิลด์และวิดเจ็ตของฟิลด์

บทเรียน 1 จาก 413 ขั้นตอน

กำหนด forms.Form เป็นบทเรียน Django Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Django Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Django Academy มีบทเรียนทั้งหมด 4 บทเรียน

เหตุผลที่มีฟอร์ม

ฟอร์ม Django เปลี่ยนข้อมูลที่ผู้ใช้ป้อนอย่างยุ่งเหยิงให้เป็นข้อมูล Python ที่สะอาด พร้อมจัดการการแสดงผลและการตรวจสอบความถูกต้องในที่เดียวอย่างเป็นระเบียบ 📝

สืบทอดจาก forms.Form

คุณประกาศฟอร์มด้วยการสืบทอดจาก forms.Form แอตทริบิวต์ของคลาสแต่ละรายการที่เพิ่มจะกลายเป็นฟิลด์ในฟอร์มนั้น

from django import forms

class ContactForm(forms.Form):
    name = forms.CharField()

ฟิลด์คือแอตทริบิวต์ของคลาส

ทุกฟิลด์คือ แอตทริบิวต์ของคลาส ที่กำหนดให้เป็นอินสแตนซ์ของฟิลด์ เช่น CharField หรือ EmailField ชื่อแอตทริบิวต์จะกลายเป็นชื่ออินพุต

name = forms.CharField()
email = forms.EmailField()

CharField สำหรับข้อความ

ใช้ CharField สำหรับข้อความสั้น กำหนด max_length เพื่อจำกัดขนาด และระบบจะแสดงอินพุต HTML ที่เหมาะสมโดยอัตโนมัติ

subject = forms.CharField(max_length=120)

EmailField ตรวจสอบรูปแบบ

EmailField ตรวจสอบว่าค่าดูเหมือนที่อยู่อีเมลจริง คุณจึงไม่ต้องเขียนการตรวจสอบนี้เอง

email = forms.EmailField()

จำเป็นโดยค่าเริ่มต้น

ทุกฟิลด์จะ จำเป็นต้องกรอก เว้นแต่คุณจะระบุเป็นอย่างอื่น ส่ง required=False เพื่อทำให้ฟิลด์เป็นตัวเลือกสำหรับผู้ใช้

phone = forms.CharField(required=False)

label และ help_text

เพิ่ม ป้ายกำกับที่เป็นมิตรและ help_text เพื่อให้ผู้ใช้เข้าใจแต่ละฟิลด์ Django จะแสดงสิ่งเหล่านี้ถัดจากอินพุต

name = forms.CharField(label="Your name",
    help_text="First and last")

เลือกวิดเจ็ต

วิดเจ็ตควบคุม HTML ที่แสดงผลสำหรับฟิลด์ เปลี่ยนค่าที่กำหนดไว้เพื่อให้ได้พื้นที่ข้อความ ช่องรหัสผ่าน หรือรายการเลือก

message = forms.CharField(
    widget=forms.Textarea)

ชนิดฟิลด์เพิ่มเติม

Django มีฟิลด์ให้ใช้มากมาย: IntegerField, BooleanField, DateField และ ChoiceField ต่างจับคู่กับอินพุตที่เหมาะสมและแปลงค่าให้คุณ

age = forms.IntegerField()
agree = forms.BooleanField()

ChoiceField และตัวเลือก

ChoiceField จะแสดงรายการแบบเลื่อนลงจากรายการคู่ค่ากับป้ายกำกับที่คุณระบุใน choices

plan = forms.ChoiceField(choices=[
    ("free", "Free"), ("pro", "Pro")])

สร้างอินสแตนซ์ของฟอร์ม

สร้าง ฟอร์มที่ยังไม่ผูกข้อมูล โดยไม่ส่งข้อมูลเพื่อแสดงฟอร์มเปล่า หรือส่งข้อมูลเพื่อผูกฟอร์มและตรวจสอบความถูกต้อง

form = ContactForm()  # blank
form = ContactForm(request.POST)

ตรวจสอบอย่างรวดเร็ว

มาดูกันว่าฟอร์มถูกกำหนดอย่างไร

สรุปทบทวน

คุณสืบทอดจาก forms.Form และเพิ่มฟิลด์เป็นแอตทริบิวต์ของคลาส เลือกชนิดฟิลด์และวิดเจ็ตที่เหมาะสม แล้ว Django จะจัดการส่วนที่เหลือให้ ✅

เริ่มต้นได้ฟรี

เรียนรู้ Python ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

คำถามที่พบบ่อย

บทเรียน “กำหนด forms.Form” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “กำหนด forms.Form” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Django Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Django Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “กำหนด forms.Form”

ประกาศฟิลด์และวิดเจ็ตของฟิลด์ คุณปฏิบัติ Django Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Django Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Django Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “กำหนด forms.Form” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Django Academy นี้ได้ไหม

ได้ บทเรียน Django Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. กำหนด forms.Form
  2. is_valid และ cleaned_data
  3. แสดงผลฟอร์มในเทมเพลต
  4. การป้องกัน CSRF และขั้นตอน POST
← กลับไปที่ Django Academy