Django Framework
ในบทนี้เราจะพูดถึง Django Framework โดยละเอียด
Django เป็นเว็บเฟรมเวิร์ก MVT ที่ใช้สร้างเว็บแอปพลิเคชัน เว็บเฟรมเวิร์ก Django ขนาดใหญ่มาพร้อมกับ“ แบตเตอรี่” จำนวนมากที่นักพัฒนามักจะประหลาดใจว่าทุกอย่างทำงานร่วมกันได้อย่างไร หลักการที่อยู่เบื้องหลังการเพิ่มแบตเตอรี่จำนวนมากคือการมีฟังก์ชันเว็บทั่วไปในเฟรมเวิร์กแทนการเพิ่มหลังเป็นไลบรารีแยกต่างหาก
หนึ่งในเหตุผลหลักที่อยู่เบื้องหลังความนิยมของเฟรมเวิร์ค Django คือชุมชน Django ขนาดใหญ่ ชุมชนนี้มีขนาดใหญ่มากจนมีการใช้เว็บไซต์แยกต่างหากที่ซึ่งนักพัฒนาจากทุกมุมได้พัฒนาแพ็คเกจของบุคคลที่สามรวมถึงการตรวจสอบสิทธิ์การอนุญาตระบบ CMS ที่ขับเคลื่อนด้วย Django เต็มรูปแบบโปรแกรมเสริมอีคอมเมิร์ซและอื่น ๆ มีความเป็นไปได้สูงว่าสิ่งที่คุณพยายามพัฒนานั้นได้รับการพัฒนาโดยใครบางคนแล้วและคุณเพียงแค่ต้องดึงสิ่งนั้นเข้ามาในโครงการของคุณ
ทำไมคุณควรใช้ Django?
Django ได้รับการออกแบบในลักษณะที่สนับสนุนให้นักพัฒนาพัฒนาเว็บไซต์ได้อย่างรวดเร็วสะอาดและมีการออกแบบที่ใช้งานได้จริง แนวทางปฏิบัติของ Django ในการทำสิ่งต่างๆให้สำเร็จคือจุดที่โดดเด่นกว่าใคร
หากคุณกำลังวางแผนที่จะสร้างแอปที่ปรับแต่งได้สูงเช่นเว็บไซต์โซเชียลมีเดีย Django เป็นหนึ่งในเฟรมเวิร์กที่ดีที่สุดที่ควรพิจารณา จุดเด่นของ Django อยู่ที่การโต้ตอบระหว่างผู้ใช้หรือความสามารถในการแบ่งปันสื่อประเภทต่างๆ ข้อได้เปรียบที่ยอดเยี่ยมอย่างหนึ่งของ django คือความสามารถในการใช้ประโยชน์จากการสนับสนุนจากชุมชนขนาดใหญ่ซึ่งช่วยให้คุณสามารถปรับแต่งปลั๊กอินของบุคคลที่สามที่พร้อมใช้งานในแอปพลิเคชันของคุณได้
ด้านล่างนี้คือเหตุผลสิบอันดับแรกในการเลือก Django สำหรับการพัฒนาเว็บ -
Python
Python เป็นหนึ่งในภาษาโปรแกรมที่ง่ายที่สุดในการเรียนรู้เนื่องจากโครงสร้างภาษาที่เรียบง่ายโครงสร้างการไหลและไวยากรณ์ที่ง่าย มีความหลากหลายและใช้งานเว็บไซต์แอปพลิเคชันเดสก์ท็อปและแอปพลิเคชันมือถือที่ฝังอยู่ในอุปกรณ์จำนวนมากและใช้ในแอปพลิเคชันอื่น ๆ เป็นภาษาสคริปต์ยอดนิยม
รวมแบตเตอรี่
Django มาพร้อมกับไลบรารีทั่วไปซึ่งจำเป็นต่อการสร้างฟังก์ชันทั่วไปเช่นการกำหนดเส้นทาง URL การพิสูจน์ตัวตนตัวทำแผนที่เชิงสัมพันธ์เชิงวัตถุ (ORM) ระบบเทมเพลตและการย้ายข้อมูล db-schema
ผู้ดูแลระบบในตัว
Django มีอินเทอร์เฟซการดูแลระบบในตัวซึ่งช่วยให้คุณจัดการโมเดลสิทธิ์ผู้ใช้ / กลุ่มและจัดการผู้ใช้ ด้วยอินเทอร์เฟซแบบจำลองทำให้ไม่จำเป็นต้องมีโปรแกรมการดูแลระบบฐานข้อมูลแยกต่างหากสำหรับฟังก์ชันฐานข้อมูลขั้นสูงทั้งหมด
ไม่ขวางทางคุณ
การสร้างแอปพลิเคชัน Django จะไม่เพิ่มการสร้างต้นแบบและไม่มีฟังก์ชันที่ไม่จำเป็น ไม่มีการนำเข้าที่จำเป็นไลบรารีของบุคคลที่สามและไม่มีไฟล์การกำหนดค่า XML
ปรับขนาดได้
Django ใช้รูปแบบการออกแบบ MVC หมายความว่าเอนทิตีทั้งหมดเช่น db (ฐานข้อมูล) รหัสส่วนหลังและส่วนหน้าเป็นเอนทิตีแต่ละรายการ Django ช่วยให้เราสามารถแยกโค้ดออกจากสื่อแบบคงที่ซึ่งรวมถึงรูปภาพไฟล์ CSS และ JavaScript ที่ประกอบเป็นไซต์ของคุณ
Django รองรับรายการไลบรารีบุคคลที่สามทั้งหมดสำหรับเว็บเซิร์ฟเวอร์การแคชการจัดการประสิทธิภาพการทำคลัสเตอร์และการปรับสมดุล ข้อดีอย่างหนึ่งที่ Django มอบให้คือการรองรับแอปพลิเคชันและบริการอีเมลและการส่งข้อความที่สำคัญเช่น ReST และ OAuth
ทดสอบการต่อสู้แล้ว
Django เป็นโอเพ่นซอร์สครั้งแรกในปี 2548 หลังจากเติบโตมา 12 ปีตอนนี้ Django ไม่เพียง แต่ดำเนินการเว็บไซต์เผยแพร่ข่าวสารเท่านั้น แต่ยังดำเนินการทั้งหมดหรือบางส่วนขององค์กรระดับโลกรายใหญ่เช่น Pinterest, Instagram, Disqus, Bitbucket, EventBrite และ Zapier ทำให้เป็นเว็บเฟรมเวิร์กที่มีประสิทธิภาพและเชื่อถือได้ในการใช้งาน
รองรับแพ็คเกจขนาดใหญ่
เนื่องจากการสนับสนุนจากชุมชนขนาดใหญ่และเครือข่ายนักพัฒนาขนาดใหญ่จึงมีความเป็นไปได้สูงที่สิ่งที่คุณตั้งใจจะทำอาจเคยทำมาก่อน ชุมชนนักพัฒนาระหว่างประเทศขนาดใหญ่มีส่วนร่วมกับชุมชนด้วยการปล่อยโครงการของพวกเขาเป็นแพ็คเกจโอเพนซอร์ส
หนึ่งในพื้นที่เก็บข้อมูลของโครงการเหล่านี้คือเว็บไซต์ Django Package ปัจจุบันแพ็คเกจ Django มีรายการมากกว่า 3400 รายการรวมทั้งแอปพลิเคชัน Django ไซต์และเครื่องมือที่ใช้ซ้ำได้เพื่อใช้ในโครงการ Django ของเรา
พัฒนาอย่างแข็งขัน
ความเสี่ยงที่ใหญ่ที่สุดอย่างหนึ่งที่เกี่ยวข้องกับโครงการโอเพ่นซอร์สคือความยั่งยืน เราไม่สามารถแน่ใจได้ว่าจะอยู่ได้นานหรือไม่
ไม่มีความเสี่ยงเช่นนี้กับ Django เนื่องจากอายุ 12 ปี การเผยแพร่ที่สม่ำเสมอเวอร์ชันที่ใหม่กว่า / ดีกว่าและชุมชนที่ใช้งานกำลังเติบโตขึ้นทุกวันโดยมีทีมงานหลักจำนวนมากของผู้ร่วมให้ข้อมูลโดยสมัครใจที่ดูแลและปรับปรุงฐานรหัสทุกวัน
รุ่นที่เสถียร
ในหลาย ๆ กรณีโครงการซอฟต์แวร์โอเพนซอร์สเช่น Django ได้รับการพัฒนาอย่างแข็งขันและปลอดภัยมากกว่าซอฟต์แวร์ที่เป็นกรรมสิทธิ์ของคู่แข่งเนื่องจากนักพัฒนาหลายรายกำลังพัฒนาและทดสอบทุกวัน อย่างไรก็ตามข้อเสียเปรียบของโครงการซอฟต์แวร์โอเพ่นซอร์สคือการไม่มี codebase ที่มีเสถียรภาพในการพัฒนาเชิงพาณิชย์
ใน Django เรามีซอฟต์แวร์เวอร์ชัน Long Term Support (LTS) และกระบวนการเผยแพร่ที่กำหนดดังแสดงในภาพด้านล่าง -
เอกสารชั้นหนึ่ง
จากการเปิดตัวครั้งแรกนักพัฒนา Django ได้ตรวจสอบให้แน่ใจว่าจะต้องมีเอกสารที่ครอบคลุมที่เหมาะสมและบทช่วยสอนนั้นเข้าใจได้ง่าย
ใครใช้ Django
เนื่องจากจุดเด่นที่เป็นเอกลักษณ์ของ Django จึงมีเว็บไซต์ยอดนิยมหลายแห่งที่สร้างด้วย Python ที่ด้านบนของเฟรมเวิร์ก Django ด้านล่างนี้เป็นเว็บไซต์หลักบางส่วนที่สร้างขึ้นทั้งหมดหรือบางส่วนโดยใช้ Django
Disqus
เป็นหนึ่งในบล็อกแสดงความคิดเห็นที่เป็นที่ต้องการมากที่สุดทั่วโลก ง่ายต่อการผสานรวมกับ CMS (ระบบจัดการเนื้อหา) ยอดนิยมเช่น WordPress และอื่น ๆ อีกมากมายผ่าน Disqus การจัดการฐานผู้ใช้กว่า 50 ล้านคน Django สามารถตอบสนองเจ้าของไซต์ในการเข้าถึงชุมชนของพวกเขา
หัวหอม
เว็บไซต์ Onion ซึ่งเป็นสถานที่ออนไลน์สำหรับหนังสือพิมพ์เสียดสีของพวกเขา Django ได้จัดเตรียมกรอบไว้ให้
Bitbucket
Bitbucket ก็เหมือนกับ GitHub ซึ่งเป็นบริการโฮสต์ที่เก็บข้อมูลเวอร์ชันควบคุม ความแตกต่างเพียงอย่างเดียวระหว่าง Bitbucket และ GitHub ก็คือ Bitbucket โฮสต์ที่เก็บ Mercurial ในขณะที่ GitHub โฮสต์ที่เก็บ git เนื่องจากผู้ใช้หลายล้านคนเชื่อมโยงกับ Bitbucket และบริการทั้งหมดที่ bitbucket มีให้ (เช่นสร้าง repo, push code, เพิ่มผู้ทำงานร่วมกัน, commits, pull request ฯลฯ ) จะต้องมีความเสถียร Django รับผิดชอบในการเรียกใช้ไซต์ bitbucket
อินสตาแกรม
Instagram เป็นแอปโซเชียลเน็ตเวิร์กที่สร้างขึ้นโดยเฉพาะสำหรับผู้ที่ชอบแชร์รูปภาพและวิดีโอให้เพื่อน ๆ ทุกคน ปัจจุบันมีคนดังมากมายใน Instagram เพื่อให้ใกล้ชิดกับแฟน ๆ มากขึ้น Django framework ก็ใช้งาน Instagram เช่นกัน
Mozilla Firefox
เบราว์เซอร์ที่ใช้กันอย่างแพร่หลายเป็นอันดับสองของโลกรองจาก Google Chrome คือเบราว์เซอร์ Mozilla ตอนนี้หน้าช่วยเหลือของ Mozilla สร้างขึ้นด้วย Django framework
ผู้ใช้หลายล้านคนทั่วโลกค้นพบแนวคิดและแรงบันดาลใจใหม่ ๆ จาก Pinterest Pinterest ใช้เฟรมเวิร์ก Django (ทำการปรับเปลี่ยนตามความต้องการ) เพื่อเรียกใช้
นาซ่า
เว็บไซต์อย่างเป็นทางการของ National Aeronautics and Space Administration เป็นสถานที่สำหรับผู้ใช้หลายล้านคนในการเยี่ยมชมและตรวจสอบข่าวสารรูปภาพวิดีโอและพอดคาสต์ที่จัดทำโดยหน่วยงานรอบปฐมทัศน์ Django พัฒนาบางส่วนของเว็บไซต์ NASA อย่างเป็นทางการ
วอชิงตันโพสต์
หากมีหนังสือพิมพ์ที่มีอิทธิพลฉบับหนึ่งในโลกนั่นก็คือ Washington Post เว็บไซต์ของวอชิงตันโพสต์เป็นแหล่งข่าวออนไลน์ที่ได้รับความนิยมอย่างมากพร้อมกับกระดาษประจำวันของพวกเขา การดูและการเข้าชมจำนวนมากได้รับการจัดการอย่างง่ายดายโดยเฟรมเวิร์กเว็บ Django
ของขวัญ Reddit
เว็บไซต์ Reddit ที่ได้รับความนิยมอย่างล้นหลามได้เปิดตัวแพลตฟอร์มแลกเปลี่ยนของขวัญและพบปะออนไลน์แบบไม่ระบุตัวตนที่เรียกว่า Reddit Gifts ไซต์นี้เชื่อมต่อผู้ใช้จากทั่วโลกและอำนวยความสะดวกในการแลกเปลี่ยนของขวัญระหว่างกัน เว็บเฟรมเวิร์ก Django เพิ่มพลังให้กับฟังก์ชันต่างๆ
พรีซี่
Prezi เป็นทางเลือกบนระบบคลาวด์สำหรับ Microsoft PowerPoint ที่สร้างขึ้นบนเฟรมเวิร์ก Django ไซต์มีผืนผ้าใบเสมือนจริงที่สามารถปรับแต่งและซูมเข้าและออกได้ สิ่งนี้ให้มุมมองทั้งหมดของงานนำเสนอแทนที่จะเป็นสไลด์เดี่ยว
การติดตั้งและสร้างโปรเจ็กต์และแอพ Django
ก่อนติดตั้ง Django เราต้องแน่ใจว่าได้ติดตั้ง Python แล้ว สมมติว่าคุณใช้ Virtualenv การติดตั้ง pip django แบบง่ายๆก็น่าจะเพียงพอแล้ว
การติดตั้งสภาพแวดล้อมเสมือนจริงและ Django
ด้านล่างนี้เป็นขั้นตอนการติดตั้งสภาพแวดล้อมเสมือนและ Django ในสภาพแวดล้อม Windows ของคุณ -
หากต้องการตรวจสอบว่า Django ได้รับการติดตั้งอย่างถูกต้องหรือไม่ให้พิมพ์รหัสที่ระบุด้านล่าง -
การสร้างโครงการ Django
เมื่อการติดตั้งเสร็จสิ้นเราจำเป็นต้องสร้างโครงการ Django
การรันคำสั่งด้านล่างในเครื่อง windows ของคุณจะสร้างโครงการ django ต่อไปนี้ -
django-admin startproject my_project_name
การพิมพ์ dir จะแสดงไฟล์ใหม่หนึ่งไฟล์และไดเร็กทอรีใหม่หนึ่งรายการดังที่แสดงด้านบน
manage.py- Manage.py เป็นไฟล์ Python ที่เรียกใช้บรรทัดคำสั่งซึ่งเป็นเพียงเครื่องห่อหุ้มรอบ ๆ django-admin ช่วยให้เราจัดการโครงการของเราซึ่งมีนัยในชื่อได้เช่นกัน
ด้วยสิ่งนี้จึงสร้างไดเร็กทอรีชื่อ myFirstDjangoProjectภายใน myFirstDjangoProject ซึ่งแสดงถึงรูทการกำหนดค่าสำหรับโครงการของเรา ให้เราสำรวจลึกลงไป
การกำหนดค่า Django
เมื่อเรียกไดเร็กทอรี myFirstDjangoProject "configuration root" เราหมายถึงไดเร็กทอรีนี้เก็บไฟล์ที่จำเป็นสำหรับการกำหนดค่าโปรเจ็กต์ Django ของเราโดยทั่วไป ทุกสิ่งที่อยู่นอกไดเรกทอรีนี้จะเน้นเฉพาะ“ ตรรกะทางธุรกิจ” ที่เกี่ยวข้องกับโมเดลมุมมองเส้นทาง ฯลฯ ของโครงการทุกจุดที่เชื่อมต่อโครงการเข้าด้วยกันจะนำไปสู่ที่นี่
__init__.py - ว่างเปล่าและเปลี่ยนไดเร็กทอรีเป็นแพ็คเกจ Python ที่นำเข้าได้
settings.py - ตามชื่อที่แนะนำเป็นสถานที่ที่จะตั้งค่ารายการกำหนดค่าส่วนใหญ่
urls.py - URL ถูกตั้งค่าด้วย urls.py ด้วยเหตุนี้เราจึงไม่จำเป็นต้องเขียน URL ทั้งหมดสำหรับโครงการในไฟล์นี้อย่างชัดเจน อย่างไรก็ตามเราต้องแจ้งให้ Django ทราบว่า URL ถูกประกาศไปที่ใด (กล่าวคือเราต้องเชื่อมโยง URL อื่นใน urls.py)
Wsgi.py - ใช้เพื่อช่วยแอปพลิเคชันในการผลิตและคล้ายกับแอปพลิเคชันอื่น ๆ เช่น Flask, Tornado, Pyramid ซึ่งแสดงวัตถุ "แอป" บางส่วน
การตั้งค่า
ดูภายใน settings.py จะเปิดเผยขนาดที่สำคัญ - และนี่เป็นเพียงค่าเริ่มต้น สิ่งอื่น ๆ ที่เราต้องดูแลคือไฟล์แบบคงที่ฐานข้อมูลไฟล์มีเดียการรวมระบบคลาวด์หรือวิธีอื่น ๆ อีกมากมายที่สามารถกำหนดค่าโครงการ Django ได้ มาทำความเข้าใจบางประเด็นที่กล่าวถึงในไฟล์ settings.py -
BASE_DIR- สิ่งนี้มีประโยชน์สำหรับการค้นหาไฟล์ ภายในไฟล์ setting.py พารามิเตอร์ BASE_DIR ตั้งค่าพา ธ สัมบูรณ์ไปยังไดเร็กทอรีฐาน
SECRET_KEY- ใช้สำหรับทำแฮช โดยทั่วไปเราใช้ secret_key สำหรับคุกกี้เซสชันการป้องกัน csrf และโทเค็นการตรวจสอบสิทธิ์
DEBUG - เราสามารถตั้งค่าให้โปรเจ็กต์ทำงานได้ทั้งในโหมดพัฒนาหรือโหมดการผลิต
ALLOWED_HOSTS- เราให้รายชื่อโฮสต์ที่แอปพลิเคชันของเราให้บริการ ในโหมดการพัฒนาเป็นทางเลือกในการตั้งค่า อย่างไรก็ตามในเครื่องจักรการผลิตเราจำเป็นต้องตั้งโครงการ Django ของเรา
INSTALLED_APPS- เป็นรายการ "แอป" ของ Django ที่ติดตั้งและทำงานอยู่ในโครงการ Django ของเรา Django ในตัวมีแอพที่ติดตั้งหกแอพดังนี้ -
'django.contrib.admin'
'django.contrib.auth'
django.contrib.
django.contrib.sessions
django.contrib.messages
django.contrib.staticfiles
MIDDLEWARE- ช่วยให้โครงการ Django ของเราทำงานได้ เป็นคลาส python ที่เชื่อมต่อกับการประมวลผลคำขอ / ตอบกลับ django
TEMPLATES- กำหนดวิธีการแสดงเอกสารในส่วนหน้า เทมเพลต Django ใช้สำหรับสร้างรูปแบบข้อความใด ๆ
WSGI_APPLICATION- เซิร์ฟเวอร์ใด ๆ ที่เราตั้งค่าต้องรู้ว่าไฟล์ WSGI อยู่ที่ไหน ในกรณีที่คุณใช้เซิร์ฟเวอร์ภายนอกเซิร์ฟเวอร์จะดูในการตั้งค่าของตัวเอง โดยค่าเริ่มต้นจะชี้ไปที่วัตถุใน wsgi.py
DATABASES- ตั้งค่าเป็นฐานข้อมูลโครงการ Django ของเรากำลังเข้าถึง จำเป็นต้องตั้งค่าฐานข้อมูลเริ่มต้น ในกรณีที่เราตั้งฐานข้อมูลที่เราต้องการเราจำเป็นต้องพูดถึงบางสิ่งที่เกี่ยวข้องกับฐานข้อมูลเช่น - HOST, USER, PASSWORD, PORT, database NAME และ ENGINE ที่เหมาะสม
STATIC_URL- เป็น URL ที่จะใช้เมื่ออ้างถึงไฟล์แบบคงที่ที่อยู่ใน STATIC_ROOT โดยค่าเริ่มต้นจะไม่มี
อย่างไรก็ตามเราอาจต้องเพิ่มเส้นทางสำหรับไฟล์คงที่ ลงไปที่จุดสิ้นสุดของไฟล์และใต้รายการ STATIC_URL เพิ่มรายการใหม่ชื่อ STATIC_ROOT ดังที่แสดงด้านล่าง -
myFirstDjangoProject/settings.py
STATIC_URL = '/ คงที่ /'
STATIC_ROOT = os.path.join (BASE_DIR, 'คงที่')
การตั้งค่าฐานข้อมูล
มีซอฟต์แวร์ฐานข้อมูลจำนวนมากที่สามารถจัดเก็บวันที่สำหรับไซต์ของคุณได้ เราจะใช้ค่าเริ่มต้น sqlite3
สิ่งนี้ถูกตั้งค่าไว้แล้วในส่วนที่ระบุด้านล่างของไฟล์ myFirstDjangoProject/settings.py -
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
ในการสร้างฐานข้อมูลสำหรับบล็อกของเราให้เรียกใช้สิ่งต่อไปนี้ในคอนโซล - python manage.py migrate (เราต้องอยู่ในไดเร็กทอรี myFirstDjangoProject ที่มีไฟล์ Manage.py
คุณจะได้รับผลลัพธ์ต่อไปนี้หากทุกอย่างเป็นไปด้วยดี -
การเริ่มต้นเว็บเซิร์ฟเวอร์
คุณต้องอยู่ในไดเร็กทอรีที่มีไฟล์ Manage.py ในคอนโซลเราสามารถเริ่มการทำงานของเว็บเซิร์ฟเวอร์โดยเรียกใช้ python Manage.py runningerver ดังนี้ -
ตอนนี้สิ่งที่คุณต้องทำคือตรวจสอบว่าเว็บไซต์ของคุณกำลังทำงานอยู่ เปิดเบราว์เซอร์ของคุณ (Firefox, Chrome, Safari, Internet Explorer หรืออะไรก็ตามที่คุณใช้) และป้อนที่อยู่นี้ -
http://127.0.0.1:8000/
หรือ
http://localhost:8000/ # เนื่องจากเว็บเซิร์ฟเวอร์ของเราทำงานในเครื่องของเราเท่านั้น
ยินดีด้วย! คุณเพิ่งสร้างเว็บไซต์แรกของคุณและเรียกใช้โดยใช้เว็บเซิร์ฟเวอร์!
ในขณะที่เว็บเซิร์ฟเวอร์กำลังทำงานคุณจะไม่เห็นพรอมต์บรรทัดคำสั่งใหม่เพื่อป้อนคำสั่งเพิ่มเติม เทอร์มินัลจะยอมรับข้อความถัดไป แต่จะไม่ดำเนินการคำสั่งใหม่ เนื่องจากเว็บเซิร์ฟเวอร์ทำงานอย่างต่อเนื่องเพื่อรับฟังคำขอที่เข้ามา
โมเดล Django
เรากำลังพยายามสร้างโมเดล Django ที่จะเก็บโพสต์ทั้งหมดในบล็อกของเรา แต่เพื่อให้แน่ใจว่าได้ผลเราจำเป็นต้องเรียนรู้เกี่ยวกับวัตถุ
วัตถุ
วัตถุคือชุดของคุณสมบัติและการกระทำ ให้เราเข้าใจสิ่งนี้ด้วยตัวอย่าง สมมติว่าเราต้องการจำลองแมวเราจะสร้างวัตถุที่เรียกว่าแมวที่มีคุณสมบัติเช่นสีอายุอารมณ์ (ดี / ไม่ดี / ง่วงนอน) และเจ้าของ
จากนั้นแมวจะมีการกระทำบางอย่าง: เสียงฟี้อย่างเกาหรือป้อนอาหาร
Cat
--------
color
age
mood
owner
purr()
scratch()
feed(cat_food)
CatFood
--------
taste
โดยพื้นฐานแล้วเราพยายามอธิบายสิ่งที่มีอยู่จริงในโค้ดด้วยคุณสมบัติ (เรียกว่าคุณสมบัติของวัตถุ) และการกระทำ (เรียกว่าวิธีการ)
ในขณะที่เรากำลังสร้างบล็อกเราจำเป็นต้องมีเนื้อหาข้อความและชื่อเรื่อง จำเป็นต้องมีชื่อผู้แต่งวันที่สร้างและวันที่ตีพิมพ์ด้วย
ดังนั้นบล็อกของเราจะมีวัตถุต่อไปนี้ -
Post
--------
title
text
author
created_date
published_date
นอกจากนี้เราต้องมีวิธีการบางอย่างที่เผยแพร่โพสต์นั้น ขณะนี้เราทราบแล้วว่าวัตถุคืออะไรเราสามารถสร้างแบบจำลอง Django สำหรับโพสต์บล็อกของเราได้
แบบจำลองเป็นวัตถุชนิดพิเศษใน Django และถูกบันทึกไว้ในฐานข้อมูล เราจะจัดเก็บข้อมูลของเราในฐานข้อมูล SQLite
การสร้างแอปพลิเคชัน
เพื่อให้ทุกอย่างชัดเจนเราจะสร้างแอปพลิเคชันแยกต่างหากในโครงการของเรา ด้านล่างนี้เราจะพยายามสร้างเว็บแอปพลิเคชันบล็อกโดยเรียกใช้คำสั่งง่ายๆที่กล่าวถึงด้านล่าง
ตอนนี้เราจะสังเกตเห็นว่าไดเร็กทอรี myBlog ใหม่ถูกสร้างขึ้นและมีไฟล์จำนวนหนึ่งในขณะนี้ ไดเรกทอรีและไฟล์ในโครงการของเราควรเป็นดังต่อไปนี้ -
หลังจากสร้างแอปพลิเคชันแล้วเราต้องแจ้งให้ Django ใช้งานด้วย เราทำในไฟล์ myFirstDjangoProject / settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myBlog',
]
การสร้างแบบจำลองโพสต์บล็อก
ใน myBlog/models.py ไฟล์เรากำหนดออบเจ็กต์ทั้งหมดที่เรียกว่าโมเดล - นี่คือที่ที่เราจะกำหนดโพสต์บล็อกของเรา
มาเปิด myBlog / models.py ลบทุกอย่างออกแล้วเขียนโค้ดดังนี้ -
ประการแรกเรานำเข้าฟังก์ชันบางอย่างจากไฟล์อื่น ๆ โดยการโทรจากหรือนำเข้า ด้วยวิธีนี้แทนที่จะคัดลอกและวางสิ่งเดียวกันในทุกไฟล์เราสามารถรวมบางส่วนไว้ด้วยfrom and import.
class Post(models.Model) - บรรทัดนี้กำหนดโมเดลของเรา (มันคือวัตถุ)
class เป็นคีย์เวิร์ดพิเศษที่บ่งชี้ว่าเรากำลังกำหนดอ็อบเจกต์
โพสต์คือชื่อรุ่นของเรา เริ่มต้นชื่อคลาสด้วยอักษรตัวพิมพ์ใหญ่เสมอ
Models.Model หมายความว่า Post เป็น Django Model ดังนั้น Django จึงรู้ว่าควรบันทึกไว้ในฐานข้อมูล
ตอนนี้ให้เราพูดคุยเกี่ยวกับคุณสมบัติที่เรากำหนดไว้ข้างต้น: ชื่อเรื่องข้อความวันที่สร้างขึ้นวันที่เผยแพร่และผู้แต่ง ในการทำเช่นนั้นเราต้องกำหนดประเภทของแต่ละฟิลด์
Models.CharField - นี่คือวิธีที่คุณกำหนดข้อความด้วยอักขระจำนวน จำกัด
Models.TextField - สำหรับข้อความยาวโดยไม่ จำกัด จำนวน
Models.DateTimeField - สำหรับวันที่และเวลา
Models.ForeignKey - นี่คือลิงค์ไปยังโมเดลอื่น
เรากำหนดฟังก์ชัน / วิธีการด้วย def และเผยแพร่เป็นชื่อของวิธีการ
วิธีมักจะคืนค่าบางสิ่งบางอย่าง ที่นี่เมื่อเราเรียก __str __ () เราจะได้รับข้อความ (สตริง) พร้อมชื่อโพสต์
การสร้างตารางสำหรับโมเดลในฐานข้อมูลของคุณ
ขั้นตอนสุดท้ายคือการเพิ่มโมเดลใหม่ในฐานข้อมูลของเรา ก่อนอื่นเราต้องให้ Django เข้าใจว่าเราได้ทำการเปลี่ยนแปลงบางอย่างในโมเดลของเรา ให้เราทำเช่นเดียวกันในหน้าต่างคอนโซลของเราด้วยคำสั่งpython manage.py make migrations myBlog ดังแสดงด้านล่าง -
จากนั้น Django จะเตรียมไฟล์การย้ายข้อมูลซึ่งตอนนี้เราต้องใช้กับฐานข้อมูลของเรา ในคอนโซลของเราเราสามารถพิมพ์:python manage.py migrate myBlog และผลลัพธ์ควรเป็นดังนี้ -
ขณะนี้โมเดลโพสต์ของเราอยู่ในฐานข้อมูลของเราแล้ว
ผู้ดูแลระบบ Django
ในการเพิ่มแก้ไขและลบโพสต์ที่เราเพิ่งสร้างแบบจำลองเราใช้ Django admin
ดังนั้นให้เราเปิดไฟล์ myBlog/admin.py file และใส่เนื้อหาด้านล่างในนี้ -
ประการแรกเรานำเข้า (รวม) โมเดลโพสต์ที่กำหนดไว้ในบทก่อนหน้า เพื่อให้โมเดลของเราปรากฏบนหน้าผู้ดูแลระบบเราจำเป็นต้องลงทะเบียนโมเดลกับ admin.site.register (โพสต์)
ในการลงชื่อเข้าใช้ไซต์ผู้ดูแลระบบคุณต้องสร้าง superuser ซึ่งเป็นบัญชีผู้ใช้ที่สามารถควบคุมทุกอย่างบนไซต์ได้ ดังนั้นหยุดเว็บเซิร์ฟเวอร์และพิมพ์ python ในบรรทัดคำสั่งmanage.py createsuperuserแล้วกด Enter
ได้เวลาดูโมเดลโพสต์ของเราแล้ว อย่าลืมเรียกใช้ python Manage.py รันเซิร์ฟเวอร์ในคอนโซลเพื่อรันเว็บเซิร์ฟเวอร์ ไปที่เบราว์เซอร์ของคุณแล้วพิมพ์ที่อยู่https://127.0.0.1:8000/admin/.เข้าสู่ระบบด้วยข้อมูลประจำตัวที่เราเพิ่งเลือก จากนั้นคุณจะเห็นแดชบอร์ดผู้ดูแลระบบ Django ดังต่อไปนี้ -
ไปที่โพสต์และทดลองกับมันเล็กน้อย คุณสามารถเพิ่มบล็อกโพสต์และเนื้อหาได้จากทุกที่ บล็อกของคุณจะมีลักษณะดังนี้ -
นี่เป็นเพียงภาพรวมของ Django และเราสามารถสร้างบล็อกโดยใช้โค้ดเพียงไม่กี่บรรทัด