Wednesday, January 31, 2018

Django : Tutorial Django part 1

      ในบทความนี้นะครับเราจะมาสอนสร้าง webapp ด้วย Django กันนะครับ

Creating a project

Browse ไปยัง Folder ที่ต้องการเก็บ project จากนั้น เริ่มสร้าง project ด้วยคำสั่ง


$ django-admin startproject mysite

จะทำให้ได้โฟลเดอร์ mysite ซึ่งด้านในจะเก็บไฟล์ project ของ Django ดังนี้

Credit Pic :  https://docs.djangoproject.com/en/2.0/intro/tutorial01/

  1. manage.py คือไฟล์ script สำหรับรันคำสั่งต่างๆ ที่เกี่ยวข้องกับ Django โดยปกติไฟล์นี้จะไม่ถูกแก้ไขใด ๆ
  2. __init__.py คือไฟล์ว่างๆ (ลองเปิดด้วย text editor ดูได้ครับ) ไฟล์นี้มีไว้เพื่อให้ภาษา Python รู้ว่าโฟลเดอร์ที่อยู่นี้เป็นโฟลเดอร์ที่ใช้เก็บ Python Package โดยปกติไฟล์นี้จะถูกปล่อยเป็นไฟล์ว่าง ๆ ไว้แต่เราสามารถใส่ Python script เข้าไปได้เช่นกันแต่จะไม่ขอพูดถึงรายละเอียดในส่วนนี้ในบทความนี้ โดยรายละเอียดเพิ่มเติมของไฟล์นี้สามารถศึกษาได้จาก   https://docs.python.org/3/tutorial/modules.html#packages 
  3. settings.py คือไฟล์ที่ใช้เก็บ configuration ทั้งหมดของ project เอาไว้ เช่น การตั้งค่า Database, Timezone, Logging เป็นต้น ซึ่งค่าที่เก็บในนี้จะอยู่ในรูปแบบ key — value ซึ่งไฟล์นี้จะเป็นไฟล์แรกที่ Django เข้ามาอ่านเมื่อเริ่มการทำงานของ web server
  4. urls.py คือไฟล์ที่ใช้เก็บการ routing ของ HTTP request 
  5. wsgi.py คือไฟล์ที่ใช้เก็บข้อมูลของ Django project ของเรา ใช้สำหรับการ deploy project เมื่อต้องการเชื่อมต่อกับ Web Server สำหรับรายละเอียดการ deploy สามารถอ่านเพิ่มเติมได้  https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/

เพื่อยืนยันว่า Project ของเราที่สร้างขึ้นสามารถใช้งานได้จริงให้ทดสอบโดยการ Run Server ดูโดยใช้คำสั่ง 
     
$ python manage.py runserver

แล้วจะได้ Output จาก Command lineประมาณนี้ครับ


Credit Pic :  https://docs.djangoproject.com/en/2.0/intro/tutorial01/

ซึ่งคำสั่งจะแบ่งออกเป็น 3 ส่วนคือ

Credit Pic : 
https://cdn-images-1.medium.com/max/1600/1*HKnHpxit1dLDAK7eIJULpg.png

  1. py manage.py คือการสั่งรัน Python script ในไฟล์ manage.py ซึ่งเป็นคำสั่งเริ่มต้นในการรัน Django command ทุกคำสั่ง
  2. runserver คือ parameter เพื่อบอกว่าต้องการ start web server ขึ้นมา
  3. 0.0.0.0:8000 คือ parameter ของ web server ที่เราจะสร้างขึ้นมา โดย 0.0.0.0 หมายถึงให้ web server ของเรา bind กับ   ทุก ๆ IP ในเครื่องของเรา และ 8000 คือ port ที่ต้องการรัน

หลังจากรัน Server Django project สำเร็จ สามารถทดลองใช้ web browser เปิดเข้าหน้าเวปของเราได้ที่ http://localhost:8000 จะได้ผลลัพธ์ตามภาพด้านล่าง


Creating the Polls app

ก่อนอื่นต้องอธิบายความแตกต่างระหว่าง Project และ App ก่อน
Project vs Application
  • App คือ โปรแกรมที่อยู่ในเว็บไซต์ เช่นในเว็บอาจจะประกอบไปด้วย เว็บบอร์ด สถิติการเข้าชม โพล ปฏิทิน และอื่นอีกมากมาย  
  • Projects คือ เอาทุกอย่างที่กล่าวที่ว่ามา ยัดเข้าไปใน Projects หรือ เว็บไซต์ เว็บหนึ่ง 
เริ่มต้นโดยจะสร้าง app ผ่าน manage.py ที่อยู่ภายใต้ project ที่เราสร้างขึ้นมา โดยเขียนคำสั่งตามนี้

$ python manage.py startapp polls

หลังจากสร้าง app เรียบร้อยแล้ว จะได้โฟลเดอร์ที่ชื่อว่า polls อยู่ภายใต้ project เราอีกที

 
Credit Pic :  https://docs.djangoproject.com/en/2.0/intro/tutorial01/

หลังจากนั้นให้เราทำการสร้างหน้า view ขึ้นมาเพื่อสร้างหน้าแสดงผลให้กับ app ของเรา
ให้เข้าไปที่  polls/views.py แล้วเขียน code  ตามนี้

Credit Pic :  https://docs.djangoproject.com/en/2.0/intro/tutorial01/

หลังจากนั้นสร้างไฟล์ที่ชื่อว่า urls.py ให้อยู่ในโฟลเดอร์ polls/ ขึ้นมา

Credit Pic :  https://docs.djangoproject.com/en/2.0/intro/tutorial01/

แล้วก็เข้าไปแก้ไข urls.py ให้ชี้ไปที่ views ให้ถูกต้อง ตามนี้ 

 
Credit Pic :  https://docs.djangoproject.com/en/2.0/intro/tutorial01/

 หลังจากนั้นให้ชี้ root url ที่ไฟล์ urls.py ในส่วนของ project 
(ไฟล์อยู่นอกโฟล์เดอร์ polls/ อย่าสับสน) 
ไม่ว่า code จะเขียนไว้อย่างไรก็ตามให้แก้ตามนี้

 
 Credit Pic :  https://docs.djangoproject.com/en/2.0/intro/tutorial01/

หลังจากนั้นให้ลองรัน server ขึ้นมาแล้วไปที่ 


ใน browser ของคุณซึ่งผลลัพท์ที่ได้ขึ้นประมาณนี้ครับ

No comments:

Post a Comment