บทช่วยสอนการใช้งาน Django: คุณสมบัติ Archiการสอนและประวัติศาสตร์

⚡ สรุปอย่างชาญฉลาด

Django เป็นซอฟต์แวร์โอเพนซอร์สฟรี Python เฟรมเวิร์กเว็บที่สร้างขึ้นบนรูปแบบ Model-View-Template ช่วยให้พัฒนาเว็บไซต์ที่ปลอดภัย ปรับขนาดได้ และขับเคลื่อนด้วยฐานข้อมูลได้อย่างรวดเร็ว ผ่านส่วนประกอบที่นำกลับมาใช้ใหม่ได้ อินเทอร์เฟซผู้ดูแลระบบอัตโนมัติ และการออกแบบที่ครบครัน

  • 🔘 กรอบ: Django เป็นภาษาโปรแกรมระดับสูง Python กรอบการทำงานสำหรับการสร้างเว็บแอปพลิเคชันที่ซับซ้อนซึ่งขับเคลื่อนด้วยฐานข้อมูลได้อย่างรวดเร็ว
  • ☑️ Archiเทคเจอร์: รูปแบบ Model-View-Template (MVT) ช่วยให้ Django สามารถจัดการคอนโทรลเลอร์และแยกส่วนข้อมูล ตรรกะ และการนำเสนอออกจากกันได้
  • รวมแบตเตอรี่: ระบบจัดการผู้ดูแลระบบ การตรวจสอบสิทธิ์ แบบฟอร์ม และการรองรับหลายภาษาในตัว ช่วยลดงานตั้งค่าที่ซ้ำซากจำเจส่วนใหญ่ลงได้
  • 🛠️ การรักษาความปลอดภัย: ระบบป้องกันเริ่มต้นจะบล็อกการโจมตีแบบ CSRF, การโจมตีแบบ Cross-site scripting, การโจมตีแบบ SQL injection และการโจมตีแบบ Clickjacking
  • 🧪 ขนาด: InstagramPinterest, Mozilla และ Disqus ต่างใช้ Django ในการรองรับปริมาณการใช้งานที่สูงมาก
  • 🤖 ถึง: Django ให้บริการโมเดลแมชชีนเลิร์นนิงในรูปแบบ API และตัวช่วยอย่าง GitHub Copilot ช่วยเร่งความเร็วในการเขียนโค้ดฝั่งแบ็กเอนด์

บทแนะนำการใช้งาน Django สำหรับผู้เริ่มต้น

Django เป็นระบบที่ขับเคลื่อนเว็บไซต์ขนาดใหญ่ที่สุดบางแห่งบนอินเทอร์เน็ต ในขณะเดียวกันก็ยังคง...ping การพัฒนาในแต่ละวันรวดเร็วและเป็นระบบ ก่อนที่จะสำรวจคุณสมบัติ สถาปัตยกรรม และประวัติความเป็นมา ส่วนต่างๆ ด้านล่างนี้จะเริ่มต้นด้วยพื้นฐานของเฟรมเวิร์กเว็บและสิ่งที่ทำให้ Django แตกต่างออกไป

สรุปการสอน Django

บทเรียน Django นี้ครอบคลุมหัวข้อพื้นฐานทั้งหมดตั้งแต่เริ่มต้น ในบทเรียนนี้ คุณจะได้เรียนรู้แนวคิดต่างๆ เช่น Django คืออะไร ประวัติความเป็นมา คุณสมบัติ ลักษณะเฉพาะของเฟรมเวิร์ก Django ส่วนประกอบของ Django ข้อดีและข้อเสีย และอื่นๆ อีกมากมาย

ก่อนที่จะเรียนรู้ Django เรามาทำความเข้าใจสิ่งต่อไปนี้กันก่อน:

เว็บเฟรมเวิร์กคืออะไร?

เฟรมเวิร์กเว็บคือไลบรารีโค้ดที่ช่วยให้คุณสร้างเว็บไซต์ แอปพลิเคชันเว็บ หรือบริการเว็บแบบไดนามิกที่มีความยืดหยุ่น ปรับขนาดได้ และบำรุงรักษาได้ง่าย เฟรมเวิร์กเว็บต่างๆ ได้แก่ Zend สำหรับ PHP ทับทิมบนราง สำหรับ Ruby และภาษาอื่นๆ

Django คืออะไร?

Django เป็นกรอบการพัฒนาเว็บไซต์สำหรับ Python ซึ่งนำเสนอวิธีการมาตรฐานสำหรับการพัฒนาเว็บไซต์ที่รวดเร็วและมีประสิทธิภาพ เป้าหมายหลักของเฟรมเวิร์กเว็บระดับสูงนี้คือการสร้างเว็บไซต์ที่ซับซ้อนซึ่งขับเคลื่อนด้วยฐานข้อมูล ช่วยให้คุณสร้างและบำรุงรักษาแอปพลิเคชันเว็บที่มีคุณภาพ ช่วยให้กระบวนการพัฒนาเป็นไปอย่างราบรื่นและประหยัดเวลาสำหรับการพัฒนาอย่างรวดเร็ว

ทำไมต้องจังโก้? ข้อดีที่สำคัญของจังโก้

นี่คือข้อดีหลักของ Django:

  • Django ติดตั้งและใช้งานง่าย มีตัวเลือกมากมายให้เริ่มต้นใช้งานได้ทันที
  • ระบบนี้มีอินเทอร์เฟซผู้ใช้ที่พร้อมใช้งานสำหรับกิจกรรมด้านการบริหารจัดการ
  • ระบบนี้ช่วยให้สามารถใช้งานเว็บไซต์หลายภาษาได้โดยใช้ระบบการรองรับหลายภาษาในตัว
  • ช่วยให้คุณรับมือกับปริมาณการใช้งานมหาศาลได้อย่างรวดเร็ว
  • Django ถูกใช้ในการสร้างระบบจัดการเนื้อหาทุกประเภท เครือข่ายสังคมออนไลน์ รวมถึงแพลตฟอร์มการคำนวณทางวิทยาศาสตร์
  • Django ช่วยให้คุณสามารถทดสอบแอปพลิเคชันแบบครบวงจรได้
  • ช่วยให้คุณสามารถจัดทำเอกสารประกอบ API ของคุณด้วยผลลัพธ์ในรูปแบบ HTML
  • เฟรมเวิร์ก REST รองรับโปรโตคอลการตรวจสอบสิทธิ์หลายประเภทอย่างครบถ้วน
  • มันมีฟังก์ชันการกำหนดสิทธิ์และการจำกัดการใช้งาน
  • มีการใช้กันอย่างแพร่หลายสำหรับคำขอ API ที่จำกัดอัตราจากผู้ใช้รายเดียว

ประวัติความเป็นมาของจังโก้

ปี ขั้น
2003 โครงการนี้เริ่มต้นโดย Adrian Holovaty และ Simon Willison ในฐานะโครงการภายในของหนังสือพิมพ์ Lawrence Journal-World
เดือนกรกฎาคม ปี 2005 ภาพยนตร์เรื่องนี้เข้าฉายในเดือนกรกฎาคม ปี 2005 ในชื่อ “Django” ซึ่งตั้งชื่อตามนักกีตาร์แจ๊สชื่อดังอย่าง Django Reinhardt
มิถุนายน มีการประกาศว่าซอฟต์แวร์ Django Foundation (DSF) จะรักษา Django ไว้
29 2009 กรกฎาคม Django 1.1 เปิดตัวพร้อมฟีเจอร์ต่างๆ เช่น aggregates และการทดสอบแบบอิงธุรกรรม
17 พฤษภาคม 2010 Django 1.2 ได้ถูกปล่อยออกมาแล้ว การอัปเดตครั้งนี้ได้เพิ่มคุณสมบัติใหม่ๆ เช่น ฐานข้อมูลหลายตัวและระบบอีเมล รวมถึงการปรับปรุงระบบเซสชันและคุกกี้
23 2011 Mar เวอร์ชัน 1.3 ได้เพิ่มคุณสมบัติใหม่ๆ เช่น มุมมองแบบคลาส และไฟล์คงที่
23 2012 Mar เวอร์ชัน 1.4 เปิดตัวพร้อมคุณสมบัติใหม่ เช่น เขตเวลา และการทดสอบในเบราว์เซอร์
26 2013 กุมภาพันธ์ เวอร์ชัน 1.5 มาพร้อมกับ Python 3 คุณสมบัติการรองรับและการกำหนดค่าโมเดลผู้ใช้
6 พฤศจิกายน 2013 เวอร์ชัน 1.6 มาพร้อมกับคุณสมบัติการจัดการธุรกรรมฐานข้อมูลและการจัดการพูลการเชื่อมต่อ
2 กันยายน 2014 เวอร์ชัน 1.7 มีคุณสมบัติใหม่ เช่น การโหลดแอปพลิเคชัน การย้ายข้อมูล และการกำหนดค่า
1 เมษายน 2015 มีการรองรับการทำงานกับเอนจิ้นเทมเพลตหลายตัวโดยตรง
1 ธ.ค. 2015 ในเวอร์ชัน 1.9 ได้มีการเพิ่มฟีเจอร์ตรวจสอบรหัสผ่านอัตโนมัติเข้ามา
1 2016 สิงหาคม ในเวอร์ชัน 1.10 การค้นหาข้อความเต็มสำหรับ PostgreSQL ออกสู่ตลาด.
4 เมษายน 2017 เวอร์ชัน 1.11 เป็นเวอร์ชันสุดท้ายที่รองรับ Python 2.7.
2 ธ.ค. 2017 เวอร์ชัน 2.0 กลายเป็นเวอร์ชันแรก Python เวอร์ชันวางจำหน่ายเพียง 3 เวอร์ชันเท่านั้น
1 2018 สิงหาคม เวอร์ชัน 2.1 มาพร้อมกับคุณสมบัติรองรับการอนุญาต "ดู" โมเดล
2021 ลบการสนับสนุน Django 3.0 และเพิ่มการสนับสนุน Django 3.2

ในบทเรียน Django สำหรับผู้เริ่มต้นนี้ เรามาเรียนรู้เกี่ยวกับคุณสมบัติต่างๆ ของ Django กันเถอะ

คุณสมบัติของ Django

ด้านล่างนี้เป็นคุณสมบัติของ Django:

  • ช่วยให้คุณกำหนดรูปแบบสำหรับ URLระบุในใบสมัครของคุณ
  • เรียบง่ายแต่ทรงพลัง URL ระบบ
  • ระบบตรวจสอบสิทธิ์ในตัว
  • ฐานข้อมูลภาษาการเขียนโปรแกรมเชิงวัตถุซึ่งนำเสนอการจัดเก็บและเรียกค้นข้อมูลที่ดีที่สุดในระดับเดียวกัน
  • ฟีเจอร์ส่วนติดต่อผู้ดูแลระบบอัตโนมัติช่วยให้สามารถเพิ่ม แก้ไข และลบรายการต่างๆ ได้ คุณสามารถปรับแต่งแผงควบคุมผู้ดูแลระบบได้ตามความต้องการของคุณ
  • เฟรมเวิร์กแคชมาพร้อมกับกลไกการแคชหลายแบบ

ในบทเรียนเกี่ยวกับเฟรมเวิร์ก Django นี้ เราจะมาเรียนรู้เกี่ยวกับคุณลักษณะต่างๆ ของ Django กัน

ลักษณะของจังโก้

นี่คือคุณสมบัติหลักของ Django:

  • เชื่อมโยงอย่างอิสระ – Django ช่วยให้คุณสร้างแต่ละองค์ประกอบในสแต็กให้เป็นอิสระจากองค์ประกอบอื่นๆ ได้
  • Less รหัส – ช่วยให้การพัฒนาเป็นไปอย่างมีประสิทธิภาพ
  • ไม่ซ้ำ – ทุกอย่างควรได้รับการพัฒนาในที่เดียวอย่างแม่นยำ แทนที่จะทำซ้ำหลายครั้ง
  • การพัฒนาอย่างรวดเร็ว – Django ช่วยให้การพัฒนาแอปพลิเคชันรวดเร็วและเชื่อถือได้
  • การออกแบบที่สอดคล้องกัน – Django มีดีไซน์ที่เรียบง่ายและทำให้ง่ายต่อการปฏิบัติตามแนวทางการพัฒนาเว็บที่ดีที่สุด

ในบทช่วยสอนสำหรับผู้เริ่มต้นใช้ Django ต่อไปนี้ เราจะเรียนรู้เกี่ยวกับสถาปัตยกรรมของ Django

Django Archiการสอน: MVC และ MVT

ด้านล่างนี้เป็นสถาปัตยกรรมโดยละเอียดของ Django:

Django Archiเทคเจอร์

Django Archiเทคเจอร์

รูปแบบ MVC

เมื่อพูดถึงแอปพลิเคชันที่มีส่วนติดต่อผู้ใช้ (เว็บหรือเดสก์ท็อป) เรามักจะพูดถึงสถาปัตยกรรม MVC รูปแบบ MVC นั้นประกอบด้วย Model, View และ Controller

การขอ รุ่น กำหนดโครงสร้างข้อมูลและจัดการการสืบค้นฐานข้อมูล

การขอ รายละเอียด กำหนดข้อมูลที่ควรนำเสนอและส่งกลับการตอบสนอง HTTP

การขอ ตัวควบคุม คือส่วนของแอปพลิเคชันที่จัดการการโต้ตอบกับผู้ใช้

รูปแบบ Django MVC-MVT

สถาปัตยกรรม Model-View-Template (MVT) เป็นแนวคิดที่แตกต่างจาก MVC ความแตกต่างหลักระหว่างสองรูปแบบสถาปัตยกรรมนี้คือ Django จัดการส่วน Controller (โค้ดซอฟต์แวร์ที่ควบคุมการโต้ตอบระหว่าง Model และ View) ด้วยตัวเอง ในขณะที่ Template เป็นไฟล์ HTML ที่ผสมผสานกับไฟล์ Django Template Language หรือที่เรียกว่า DTL

แผนภาพด้านล่างแสดงให้เห็นว่าส่วนประกอบทั้งหมดของรูปแบบ MVT ทำงานร่วมกันอย่างไรเพื่อตอบสนองคำขอเฉพาะของผู้ใช้

Django Archiการสอน: MVC และ MVT

MVT Archiเทคเจอร์

ดังที่แสดงในแผนภาพด้านบน ผู้ใช้ร้องขอทรัพยากรจาก Django โดย Django ทำหน้าที่เป็นตัวควบคุมและตรวจสอบว่ามีทรัพยากรพร้อมใช้งานหรือไม่ URL.

ถ้า URL ในแผนที่นั้น จะมีการเรียกใช้ฟังก์ชันที่เรียกว่า "มุมมอง" ซึ่งจะโต้ตอบกับโมเดลและเทมเพลต จากนั้น Django จะตอบสนองต่อผู้ใช้และส่งเทมเพลตเป็นคำตอบ

ในบทเรียน Django สำหรับผู้เริ่มต้นชุดนี้ เราจะมาเรียนรู้เกี่ยวกับส่วนประกอบต่างๆ ของ Django กัน

ส่วนประกอบของจังโก้

ฟอร์ม

Django มีไลบรารีฟอร์มที่ทรงพลังซึ่งจัดการการเรนเดอร์ฟอร์มเป็น HTML ห้องสมุดช่วยในการตรวจสอบข้อมูลที่ส่งมาและแปลงเป็น Python ประเภท

การยืนยันตัวตน

ระบบนี้จัดการบัญชีผู้ใช้ กลุ่ม เซสชันผู้ใช้แบบใช้คุกกี้ และอื่นๆ อีกมากมาย

ผู้ดูแลระบบ

โดยจะอ่านข้อมูลเมตาในโมเดลของคุณเพื่อให้มีอินเทอร์เฟซที่มีประสิทธิภาพซึ่งสามารถใช้เพื่อจัดการเนื้อหาบนไซต์ของคุณได้

สากล

Django รองรับการแปลข้อความเป็นภาษาต่างๆ และการจัดรูปแบบวันที่ เวลา ตัวเลข และเขตเวลาให้เหมาะสมกับแต่ละท้องถิ่น

⁠ความปลอดภัย

Django มีระบบป้องกันการโจมตีประเภทต่อไปนี้:

  • การปลอมแปลงคำขอข้ามไซต์ (CSRF)
  • การเขียนสคริปต์ข้ามไซต์
  • การแทรก SQL
  • Clickjacking
  • การเรียกใช้รหัสระยะไกล

บริษัทชื่อดังที่ใช้ Django

ต่อไปนี้คือบริษัทต่างๆ ที่ใช้ Django:

  • Bitbucket
  • Disqus
  • นาซา
  • พีบีเอส (บริการกระจายเสียงและแพร่ภาพสาธารณะ)
  • Pinterest
  • Instagram
  • Mozilla
  • วอชิงตันโพสต์
  • นิวนิวยอร์กไทม์
  • ไทม์ส
  • การ์เดียน
  • เนชั่นแนลจีโอกราฟฟิก
  • ค้นพบช่องทาง

ข้อเสียของการใช้จังโก้

ต่อไปนี้คือข้อเสียบางประการของการใช้ Django:

  • กระบวนการเดียวไม่สามารถจัดการคำขอหลายรายการพร้อมกันได้
  • Django เป็นเครื่องมือที่มีโครงสร้างแบบรวมศูนย์มาก
  • ส่วนประกอบต่างๆ มักถูกติดตั้งใช้งานพร้อมกัน ซึ่งอาจก่อให้เกิดความสับสนได้
  • การทำงานกับ Django จำเป็นต้องมีความรู้เกี่ยวกับระบบทั้งหมด
  • มันทำให้ส่วนประกอบของเว็บแอปพลิเคชันเชื่อมโยงกันอย่างแน่นหนา
  • คุณต้องเขียนโปรแกรมที่มีความยาวสำหรับงานเล็กๆ น้อยๆ

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

Django เป็นเฟรมเวิร์กสำหรับงานฝั่งเซิร์ฟเวอร์เป็นหลัก แม้ว่าจะมักถูกอธิบายว่าเป็นเฟรมเวิร์กแบบฟูลสแต็ก เนื่องจากเลเยอร์เทมเพลตของมันทำหน้าที่เรนเดอร์ HTML Django จัดการตรรกะฝั่งเซิร์ฟเวอร์ ฐานข้อมูล การกำหนดเส้นทาง และความปลอดภัย ในขณะที่เทมเพลตทำหน้าที่แสดงผลสำหรับเบราว์เซอร์

Django เป็นเฟรมเวิร์กแบบครบวงจรที่มี ORM ในตัว แผงควบคุมผู้ดูแลระบบ และระบบตรวจสอบสิทธิ์ ในขณะที่ Flask เป็นไมโครเฟรมเวิร์กน้ำหนักเบาที่เน้นความเรียบง่ายและอาศัยส่วนขยายสำหรับฟังก์ชันเดียวกัน ทำให้ผู้พัฒนาสามารถควบคุมได้ด้วยตนเองมากขึ้น

Django ORM หรือ object-relational mapper ช่วยให้คุณสามารถกำหนดตารางฐานข้อมูลได้ดังนี้ Python คลาสและสอบถามข้อมูลด้วย Python เขียนโค้ดแทนการใช้ SQL ดิบๆ รองรับฐานข้อมูลต่างๆ เช่น PostgreSQL, MySQL, SQLiteและ Oracle.

เรียกใช้คำสั่ง `python -m django –version` ที่บรรทัดคำสั่ง หรือเปิดไฟล์ `django-version` Python จากนั้นเรียกใช้คำสั่ง `shell` และ `run import django` ตามด้วย `print(django.get_version())` ทั้งสองคำสั่งจะแสดงหมายเลขเวอร์ชันของ Django ที่ติดตั้งไว้

มิดเดิลแวร์ (Middleware) คือชุดของฮุกที่ประมวลผลทุกคำขอและคำตอบทั่วโลก Django ใช้มิดเดิลแวร์สำหรับเซสชัน การตรวจสอบสิทธิ์ การป้องกัน CSRF และส่วนหัวด้านความปลอดภัย โดยแต่ละส่วนจะทำงานตามลำดับก่อนและหลังการประมวลผลวิวของคุณ

ความรู้ในการทำงานของ Python และจำเป็นต้องมีความรู้พื้นฐานเกี่ยวกับเว็บ เช่น HTTP, HTML และฐานข้อมูล การเข้าใจการเขียนโปรแกรมเชิงวัตถุจะทำให้การเรียนรู้โมเดลและวิวแบบคลาสใน Django ง่ายขึ้นมาก

ใช่แล้ว Django มักให้บริการโมเดลแมชชีนเลิร์นนิงผ่านทางวิวหรือ Django REST Framework โดยเปิดเผยผลการทำนายผ่านทาง API เอนด์พอยต์ โมเดลที่ได้รับการฝึกฝนแล้วจะถูกโหลดเพียงครั้งเดียวเมื่อเริ่มต้นระบบ และส่งผลลัพธ์การอนุมานกลับไปยังไคลเอนต์บนเว็บหรือมือถือ

GitHub Copilot และผู้ช่วย AI ที่คล้ายกัน สามารถเติมข้อความอัตโนมัติให้กับโมเดลและวิวของ Django ได้ URL รูปแบบและการทดสอบสามารถช่วยสร้างโครงสร้างพื้นฐานสำหรับโค้ดที่ซ้ำซากจำเจได้ มันช่วยเร่งความเร็วในการพัฒนา แต่โค้ดที่สร้างขึ้นควรได้รับการตรวจสอบด้านความปลอดภัยและความถูกต้องเสมอ

สรุปโพสต์นี้ด้วย: