การทดลองเขียนไฟล์ view ครั้งแรก
ไฟล์ view เป็นไฟล์ที่มีไว้สำหรับการแสดงหน้าเว็บเพจ โดยไฟล์ view นี้จะต้องทำงานร่วมกับไฟล์ url ซึ่งทำหน้าที่ในการเรียกใช้ไฟล์ view ผ่าน Browser เพื่อแสดงผลหน้าเว็บเพจ โดยในการทดลองเขียนไฟล์ view ครั้งแรก มีวิธีการเขียนดังนี้1. ให้ทำการเปิดไฟล์ views.py ซึ่งไฟล์นี้จะอยู่ใน Directory ของ app ที่เราได้สร้างขึ้นใน ทดลองสร้าง Django app ตอนที่ 1 สำหรับในตัวอย่างนี้จะอยู่ที่ polls/views.py
2. ให้ทดลองทำการแก้ไข code ของไฟล์ views.py ดังต่อไปนี้
3. สร้างไฟล์ใหม่ที่มีชื่อว่า urls.py ใน Directory ของ app สำหรับตัวอย่างนี้จะอยู่ใน Directory ชื่อ polls โดยในตอนนี้ Directory ของ app จะมีไฟล์ดังต่อไปนี้
polls/
__init__.py
admin.py
models.py
test.py
views.py
urls.py
4. ให้ทำการทดลองแก้ไขไฟล์ polls/urls.py ดังต่อไปนี้
5. ให้เปิดไฟล์ที่มีชื่อว่า urls.py ที่อยู่ใน Directory ของ Project สำหรับตัวอย่างนี้จะใช้ชื่อว่า mysite ดังนั้นไฟล์นี้จะอยู่ที่ mysite/urls.py เมื่อเปิดไฟล์นี้แล้วให้ทำการแก้ไข code ดังต่อไปนี้
6. ให้ทำการ runserver และลองเปิด Browser แล้วพิมพ์ url ดังนี้ http://localhost:8000/polls/ จะเห็นหน้าเว็บเพจที่แสดงคำว่า "Hello, world. You're at the poll index." ดังภาพด้านล่าง
ทดลองเขียนไฟล์ view เพิ่มขึ้น
1. ให้เปิดไฟล์ views.py ใน Directory ของ app และทำการแก้ไข code ดังต่อไปนี้
2. ให้เปิดไฟล์ urls.py ใน Directory ของ app และทำการแก้ไข code ดังต่อไปนี้
หลังจากทำการแก้ไข code ในขั้นตอนข้างต้นแล้ว เราจะลองทำการเปิด Browser แล้วพิมพ์ urls เพื่อดูความเปลี่ยนแปลงที่เราทำดังต่อไปนี้
urls: http://localhost:8000/polls/5
จาก url นี้จะไปทำการเรียกฟังก์ชัน detail ที่เราได้ทำการเพิ่มลงไปในไฟล์ views.py จะได้ตัวอย่างหน้าเว็บเพจดังภาพด้านล่าง
urls: http://localhost:8000/polls/5/results
จาก url นี้จะไปทำการเรียกฟังก์ชัน results ที่เราได้ทำการเพิ่มลงไปในไฟล์ views.py จะได้ตัวอย่างหน้าเว็บเพจดังภาพด้านล่าง
urls: http://localhost:8000/polls/5/vote
จาก url นี้จะไปทำการเรียกฟังก์ชัน vote ที่เราได้ทำการเพิ่มลงไปในไฟล์ views.py จะได้ตัวอย่างหน้าเว็บเพจดังภาพด้านล่าง
ทดลองเขียนไฟล์ view เพื่อทดลองร่วมกับ polls app
1. ให้ทำการเปิดไฟล์ views.py ใน Directory ของ app แล้วทำการแก้ไขฟังก์ชัน index ดังต่อไปนี้เมื่อทำการแก้ไขแล้วลองเปิด Browser แล้วพิมพ์ url ดังนี้ http://localhost:8000/polls จะได้หน้าเว็บเพจดังภาพด้านล่าง
2. ทดลองสร้าง template ใน app โดยวิธีการดังต่อไปนี้
2.1 ให้สร้าง Directory ใหม่ที่มีชื่อว่า templates ใน Directory ของ app ในตัวอย่างนี้จะใช้ชื่อว่า polls
2.2 ให้สร้าง Directory ใหม่ที่มีชื่อว่า polls ใน Directory ของ templates ที่เพิ่งสร้างขึ้น
2.3 ให้สร้างไฟล์ชื่อ index.html ใน Directory ชื่อ polls ที่เพิ่งสร้างขึ้นใหม่ และทำการแก้ไข code ในไฟล์ index.html ดังต่อไปนี้
2.4 ให้ทำการแก้ไข code ในฟังก์ชันชื่อ index ในไฟล์ views.py ดังต่อไปนี้
2.5 ลองเปิด Browser แล้วพิมพ์ url ดังนี้ http://localhost:8000/polls จะได้หน้าเว็บเพจดังภาพด้านล่าง
2.6 ลองทำการแก้ไข code ในฟังก์ชัน index ของไฟล์ views.py ดังต่อไปนี้เพื่อใช้คำสั่ง render แทนการใช้ HttpResponse
ลองเปิด Browser แล้วพิมพ์ url ดังนี้ http://localhost:8000/polls จะได้หน้าเว็บเพจดังภาพด้านล่าง
การสร้าง 404 Error
ในการสร้างหน้าเพจสำหรับ 404 Error นี้มีไว้เพื่อแสดงหน้าเว็บเพจในกรณีที่เกิดข้อผิดพลาดที่ไม่สามารถตอบสนองตามคำร้องขอได้ โดยให้ทำการแก้ไขโค้ดในไฟล์ views.py ดังนี้![]() |
| แก้ไขฟังก์ชัน detail ในไฟล์ views.py |
{{poll}}
เมื่อทำการแก้ไขโค้ดในไฟล์ views.py และใน template detail.html เสร็จแล้ว จะได้หน้าเว็บเพจที่แสดงหน้า 404 Error ดังภาพด้านล่าง
![]() |
| หน้าเพจ 404 Error |
นอกจากนี้แล้วเรายังสามารถใช้ get_object_or_404() เพื่อใช้แสดงหน้าเพจ 404 Error แทนโค้ดที่เขียนไปก่อนหน้านี้ได้เช่นกัน ดังนั้นเราจะทดลองทำการแก้ไขโค้ดในไฟล์ views.py ดังต่อไปนี้
![]() |
| แก้ไขโค้ดฟังก์ชัน detail ในไฟล์ views.py |
![]() |
| หน้าเพจ 404 Error |
การใช้ระบบของ Template
เราจะลองใช้ template โดยทำการแก้ไขโค้ดในไฟล์ template ที่ชื่อ detail.html ดังต่อไปนี้![]() |
| แก้ไขโค้ดใน detail.html |
![]() |
| หน้าเว็บเพจ: localhost:8000/polls/1/ |
การลบ Hardcoded URLs ใน Templates
ในตอนนี้ลิงค์ใน Template ที่ชื่อ index.html จะเป็นลิงค์ที่เฉพาะเจาะจงกับ url เมื่อใดที่เราต้องการเปลี่ยนชื่อ url เราก็จะต้องเสียเวลาเข้ามาแก้ไขโค้ดใน Template นี้ด้วย ดังนั้นเราจึงจะแก้ไขโค้ดใน Template นี้เพื่อให้ลิงค์มีการอ้างอิง url ใหม่ได้อัตโนมัติถ้าหากมีการเปลี่ยนแปลงชื่อ url โดยแก้ไขโค้ดใน template ชื่อ index.html ดังนี้แก้ไขโค้ดเก่าในบรรทัดนี้
<li><a href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li>
เปลี่ยนใหม่เป็นดังนี้
<li><a href="{% url ’detail’ poll.id %}">{{ poll.question }}</a></li>
การใช้ชื่อ URL แบบ Namespacing
ในตัวอย่างนี้เรามี app เพียงหนึ่ง app คือ polls แต่ถ้าหากว่าเรามีหลายๆ app อยู่ใน project เดียวกัน เราจำเป็นต้องเพิ่มชื่อ URL แบบ Namespacing เพื่อให้ Django สามารถแยกความแตกต่างของ URL ในแต่ละ app ได้ โดยทำการแก้ไขโค้ดในไฟล์ urls.py ของ Project ดังนี้![]() |
| แก้ไขโค้ดในไฟล์ urls.py ของ Project |
![]() |
| แก้ไขโค้ดในไฟล์ index.html |
ใน ทดลองสร้าง Django app ตอนที่ 3 นี้เราได้ศึกษาเกี่ยวกับ views, urls และ template ใน Django
สามารถศึกษา form และ Generic views ได้ ใน ทดลองสร้าง Django app ตอนที่ 4
























ไม่มีความคิดเห็น:
แสดงความคิดเห็น