ดองซีรีส์นี้มานานเลยครับ ขอโทษจริงๆ อย่างที่ผมเขียนบอกไปครั้งที่แล้วๆว่าผมจะขอแยกออกมาเป็นช่วงๆ แล้วทำเป็นโปรเจคเล็กๆไปครับ จะได้ไม่เบื่อกันก่อน

สำหรับโปรเจคนี้เราจะมาสร้างเว็บที่สามารถเขียนบล็อกได้กันครับ อาจจะมีเนื้อหาบางอย่างที่ผมไม่ได้บอกครับสามารถไปหาดูที่ tutorial Django เก่าๆของผมได้นะครับ


App ใน Django

สำหรับ App ใน Django หรือก็คือ App ที่เรากำลังหมายถึงอยู่ตรงนี้ไม่ใช่แอพ แบบที่อยู่ในโทรศัพท์นะครับ

หลายท่านอาจจะเคยได้ยินมาบ้างว่า Django มี principle ในการจัดการทรัพยากรในเว็บไซต์ที่ค่อนข้างเป็นระเบียบ และมีความสามารถในการ plug and play (คือสามารถนำสิ่งเดิมๆที่เขียนไว้ หรือสิ่งที่คนอื่นเขียนไว้มาเสียบใช้เหมือนเลโก้เลยโดยระบบหลักไม่พัง)

ซึ่งสิ่งที่ทำให้ Django มีความสามารถอย่างนั้นสิ่งนึงที่สำคัญเลยก็คือการที่ Django มีการจัดการโดยใช้ App ครับ

ภาพตัวอย่าง

อย่างในแผนภาพนี้ สมมติว่าผมต้องการจะโคลนเว็บ Facebook ขึ้นมาผมอาจจะแบ่งเว็บออกเป็นส่วนๆ แต่ละส่วนจะเรียกว่า app ซึ่งทำหน้าที่ต่างกันไป และอาจจะเกี่ยวหรือไม่เกี่ยวข้องกันก็ได้

ผมอาจจะสร้าง App ขึ้นมา 3 App โดยมี App ที่ดูแลการส่งข้อความแชท ดูแลหน้า Feed แล้วก็ดูแล APIs ทีนี้เว็บของผมก็จะมีระเบียบมากขึ้นครับ


การสร้าง App

ก่อนอื่นก็สร้าง Project ขึ้นมาก่อน หรือเข้าไปที่ไดเร็คทอรี่ของโปรเจคนั้นๆ(ที่มีไฟล์ manage.py)

จากนั้นให้รันคำสั่ง

python manage.py startapp <ชื่อ App>

หรือ

django-admin startapp <ชื่อ App>

แค่นี้เราก็จะได้แอพของเราครับ โดยชื่อแอพห้ามซ้ำกับชื่อโปรเจค เช่นถ้าโปรเจคชื่อ blog เราก็สร้างแอพชื่อ blog ไม่ได้ครับ

ไดเรคทอรีโปรเจค

จากภาพผมสร้าง App blog ในโปรเจค basicBlog ครับ จะเห็นว่าผมได้โฟลเดอร์ใหม่ชื่อ blog ซึ่งจะมีไฟล์ที่จำเป็นในแอพนั้นๆ

หลังจากสร้างแอพเสร็จแล้วอีกอย่างนึงที่ต้องทำคือการ Install App ของเราในโปรเจค โดยสามารถติดตั้งได้โดยการเข้าไปที่ไฟล์ settings.py

ไฟล์ settings.py

เลื่อนหาลิสต์ชื่อ INSTALLED_APPS จากนั้นก็เพิ่ม app เราเข้าไป เช่นผมสร้าง app ชื่อ blog ผมก็จะเพิ่มสตริง blog ลงไปครับ


แค่นี้เราก็จะมี app ใน django project ของเราแล้วครับ ข้อดีอีกอย่างของ app คือหากเราเขียนเสร็จแล้ว แล้วอยากนำไปใช้ต่อในโปรเจคอื่น เราก็ก็อปปี้โฟลเดอร์นั้นไปเลย แล้วก็ไปติดตั้งใน settings.py อีกเท่านั้นเอง


Medium ที่ 21
ปีนี้ผมตั้งใจว่าจะเขียน Medium ให้ได้เดือนละ 4–5 Medium ครับ สิ้นปีก็จะมี 52 Medium เท่ากับจำนวนสัปดาห์ใน 1 ปีพอดี ไม่รู้จะทำได้มั้ย แต่ก็ถือเป็น Passion เล็กๆน้อยๆของผมครับ 5555
ผมเขียนบทความหลายแนวแล้วแต่ว่าอยากเขียนยังไง ถ้าอยากให้กำลังใจช่วยกด Clap ให้ซักที สองทีด้วยนะครับ :D
เจอกันบทความหน้าครับ