ใน Django คุณสามารถสร้างแบบฟอร์มการติดต่อได้อย่างง่ายดาย แต่ต้องใช้การจัดการหลายอย่าง เช่น การสร้างแบบฟอร์ม มุมมอง โมเดล แล้วลงทะเบียนแบบจำลองใน Admin เป็นต้น ในบทความนี้ เราจะมาดูวิธีการใช้แพ็คเกจที่กำหนดไว้ล่วงหน้า สำหรับแบบฟอร์มการติดต่อของเราซึ่งจะบันทึกข้อมูลในรูปแบบที่กำหนดไว้ล่วงหน้า
เราจะสร้างแบบฟอร์มการติดต่อซึ่งจะเก็บข้อมูลในรูปแบบโดยไม่ต้องเขียนโค้ดใดๆ ใน models.py หรือ views.py หรือเขียน html . ใดๆ . มาเริ่มกันเลย
ตัวอย่าง
ขั้นแรก สร้างโปรเจ็กต์ Django และแอพ
ติดตั้ง django-contactforms แพ็คเกจ −
pip install django-contactforms
จากนั้นใน settings.py ให้เพิ่มบรรทัดต่อไปนี้ -
INSTALLED_APPS+=["contactforms"]
เพิ่มโมดูลนี้และชื่อแอปของคุณใน INSTALLED_APPS
ใน urls.py ของโครงการ −
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('contactforms.urls')),
path("aftercontact", include('MyForm.urls'))
] สร้าง URL ปลายทางสองจุด อันแรกสำหรับแบบฟอร์มการติดต่อ อีกอันสำหรับเปลี่ยนเส้นทางหลังจากส่ง
ใน urls.py ของแอป −
from django.urls import path,include
from . import views
urlpatterns = [
path('',views.home,name="home"),
] ที่นี่ เราสร้าง html ที่เราจะแสดงหลังจากกรอกแบบฟอร์มการติดต่อ
ใน views.py −
from django.shortcuts import render # Create your views here. def home(request): return render(request,"home.html")
เราเรนเดอร์ html ของเราที่นี่
ตอนนี้ สร้างโฟลเดอร์ในไดเร็กทอรี App และตั้งชื่อว่า "เทมเพลต" เพิ่มโฟลเดอร์ภายในและเรียกมันว่า "ผู้ติดต่อ" และเพิ่มไฟล์ html ข้างในแล้วตั้งชื่อว่า contact.html เพิ่มบรรทัดต่อไปนี้ใน contact.html
<!DOCTYPE html>
<html>
<body>
<div class="row">
<form action="{% url 'contact' %}" method="post">
<h3>Send a Message</h3>
{% csrf_token %}
<div class="form-group">
{% if messages %}
{% for message in messages %}
<span{% if message.tags %} class="{{ message.tags } }"{% endif %} style="color: green">
{{ message }}
</span>
{% endfor %}
{% endif %}
</div>
<div class="form-group">
{{ forms.name }}
</div>
<div class="form-group">
{{ forms.email }}
</div>
<div class="form-group">
{{ forms.subject }}
</div>
<div class="form-group">
{{ forms.message }}
</div>
<button class="btn btnprimary" type="submit">Submit</button>
</form>
</div>
</body>
</html> นี่คือแบบฟอร์มที่จะแสดงบนจุดปลาย "/" เราเพียงแค่โหลดแบบฟอร์มจากแพ็คเกจของเรา
กลับมาที่เทมเพลต และเพิ่ม home.html (ไม่อยู่ในโฟลเดอร์ผู้ติดต่อ) และเพิ่มบรรทัดต่อไปนี้ −
<!DOCTYPE html> <html> <head><title>tut</title></head> <body> <h3>Successfull</h3> </body> </html>
ผลลัพธ์
นี่คือ html ที่แสดงหลังจากส่งแบบฟอร์มการติดต่อ
