[Django] เริ่มโปรเจคใหม่ทั้งที ต้องมีอะไรบ้างนะ? EP.1 — init Project
สวัสดีครับ หลังจากที่ผมได้มีโอกาสได้นั่งเรียน Django มาแล้วทั้งหมด 2 วันถ้วนจากพี่ Kan Ouivirach ก็เลยอยากจะสรุปเนื้อหาที่ได้เรียนทั้งหมดไว้ในบทความนี้ เผื่อว่าตัวผมเองในอนาคตมีได้กลับมาอ่านจะได้ไม่ลืมว่าตอนที่นั่งเรียนนั้นเราทำอะไรลงไปบ้างนะ เอาละมาเริ่มกันเลยดีกว่า
สิ่งที่ต้องมีก่อนอย่างแรกก็คือ python version 3.7 ขึ้นไปในเครื่องนะครับสำหรับการติดตั้ง python ดูได้ที่นี่เลย python install
ก่อนอื่นให้เราทำการติดตั้ง Virtual environment ของ python ขึ้นมาก่อนเพื่อที่จะจัดการ library ต่าง ๆ ภายในโปรเจคของเรา
python3 -m venv env
จากนั้นเราก็จำทำการเรียกใช้งาน virtual environment ของเราโดยใช้คำสั่งนี้
source env/bin/activate
เราจะเห็นได้ว่าตัว Terminal ของเราจะมีสัญลักษณ์ (env) ปรากฏอยู่นั่นหมายความว่าเราได้แยก library environment ของเครื่องกับของโปรเจคเรียบร้อยแล้ว
จากนั้นเราก็ install ตัว django ได้เลย
pip install Django
ถ้าเราต้องการจะตรวจสอบว่าเรา install django แล้วหรือยังเราก็สามารถตรวจสอบได้ด้วยคำสั่งนี้
pip freeze
ก็จะมี output ออกมาแบบนี้
asgiref==3.2.10
Django==3.0.8
pytz==2020.1
sqlparse==0.3.1
จะสังเกตว่าเรามี library Django version 3.0.8 อยู่ แสดงว่าขั้นตอนนี้ใน virtual environment ของเรามี django เรียบร้อยแล้ว
ต่อไปเรามาเริ่มสร้างโปรเจคกันเลยดีกว่า โดยในการจัดการตัวโปรเจคและแอพต่าง ๆ ใน django นั้นจะใช้คำสั่ง django-admin ถ้าเราต้องการสร้างโปรเจคก็ใช้คำสั่งว่า
django-admin startproject todo
ในคำสั่งนี้ todo คือชื่อโปรเจคของเรา สามารถเปลี่ยนชื่อเป็นอย่างอื่นได้นะ
เมื่อเราสั่ง ls ใน command ดูเราจะเห็นว่ามี folder todo เพิ่มขึ้นมา ลองตรวจสอบดูสิว่า โปรเจคของเรามีโครงสร้างไฟล์แบบในรูปหรือเปล่านะ
ทีนี้เราจะเห็นไฟล์ manage.py ตัวนี้สำคัญมาก จะเป็นไฟล์ที่ใช้รันคำสั่งต่าง ๆ ภายในโปรเจคของเรา เพื่อที่จะเรียกใช้ไฟล์นี้ ให้เราเช็คอินเข้าไปที่ folder todo ก่อน
cd todo
จากนั้นลองใช้คำสั่งในการ start server ดูว่าโปรเจคของเราสามารถใช้งานได้หรือเปล่า
python manage.py runserver
ถ้าคำสั่งรันได้แบบไม่มีปัญหาก็ลองเข้าไปที่ http://localhost:8000/ ควรที่จะได้ภาพแบบนี้
ขอแสดงความยินดีด้วยตอนนี้คุณได้ init project django เสร็จเรียบร้อย
การทำงานกับ Docker , docker-compose
ใน ep.1 ก็สิ้นสุดการ init project กันเรียบร้อยแล้ว ทีนี้ถ้าเราต้องการใช้งานในรูปแบบของ dockerize ก็จะมีธีทำเพิ่มขึ้นมานิดหน่อย ซึ่งการเขียน docker แบบที่ผมทำนี้ยังเป็นแบบ development mode นะครับอย่าเผลอไปใช้ใน production ล่ะ
ก่อนอื่นก็ให้ทำการ install docker และ docker-compose กันก่อนนะครับ
เพื่อที่เราจะสร้าง list ของ library ของเราเพื่อไปลงใน docker เราจะใช้คำสั่ง
pip freeze > requirements.txt
เราจะได้ไฟล์ requirements.txt ออกมาใช้งานต่อในขั้นตอนต่อไป
จากนั้นให้เราสร้างไฟล์ Dockerfile และ docker-compose.yaml ตามตัวอย่างด้านล่างนี้เลยครับ
Dockerfile
docker-compose.yaml
เมื่อเราสร้างทั้ง 2 ไฟล์นี้แล้วก็สามารถใช้คำสั่งนี้เพื่อ start server ได้เลย จากนั้นเมื่อ ตรวจสอบที่ http://localhost:8000/ ก็ควรจะได้รูปจรวดของ django ขึ้นมาได้นะครับ
docker-compose up