Creating Project
django-admin startproject mysite ใช้คำสั่งนี้ในการสร้างโปรเจคท์ใหม่ของ Django โดย
mysite จะเป็นชื่อของตัวโปรเจคท์
โดยในโฟล์เดอร์โปรเจคท์งานจะมีไฟล์ต่างๆที่มีคุุณสมบัติต่างกันประมาณนี้
จากรูปด้านบน เนื่องจากภาษาอังกฤษของผมนั้นไม่ค่อยแข็งแรงเลยอาจจะแปลผิดๆถูกๆมั้ง แต่ก็ไม่น่าจะผิดเพี้ยนเกินไปเลยสรุปได้ดังนี้
- โฟล์เดอร์ mysite ตัวนอกสุดจะเป็นเพียงที่เก็บโปรเจคท์เท่านั้นเราสามารถเปลี่ยนชื่อเป็นอะไรก็ได้
- ไฟล์ manage.py เป็นไฟล์ cmd ที่จะทำให้เราใช้งาน django ได้ในหลายๆทาง
- ไฟล์ mysite ตัวในจะเป็นโฟลเดอร์ที่เป็น python package ของจริง โดยจะชื่อของตัวนี้จะเป็นสิ่งที่จำเป็นในการ import สิ่งต่างๆ
- ไฟล์ mysite/__init__.py เป็นไฟล์เปล่าๆที่ใช้ในการระบุกับตัว Python ว่าโฟลเดอร์นี้เป็น Python package
- ไฟล์ mysite/setting.py เป็นไฟล์ไว้สำหรับการตั้งค่าตัวโปรเจคท์ Django
- ไฟล์ mysite/urls.py เป็นไฟล์ที่ใช้ประกาศ url ที่ใช้ในสำหรับโปรเจคท์นั้นๆ
- ไฟล์ mysite/wsgi.py ยังไม่ทราบถ้าทราบเดียวจะมาอัพเดทอีกที
การรัน Server
ใน django ถ้าหากต้องการรัน server จะใช้คำสั่ง pyhon3 manage.py runserver ซึ่งใน tutorial จะบอกว่าเราสามารถที่จะ set ip และ port ได้ด้วยช่างสุดยอดจริงๆ โดยผมจะลองเปิดธรรมดาๆ ผลก็จะเป็นดังนี้ครับ
และเมื่อเข้าผ่านทาง web browser จะได้ดังนี้ (ip and port are default)
การสร้าง app
ในโปรเจคท์ django เราสามารถจะสร้าง app เพื่อให้มีการแสดงผลได้ โดยใน 1 Project สามารถสร้างได้หลายๆ app ซึ่งวิธีการสร้างก็จะใช้คำสั่ง python3 manage.py startapp (app's name) ซึ่งในที่นี้จะขอใช้ชื่อ app ว่า polls
เมื่อรันคำสั่งเสร็จแล้วจะได้โฟลเดอร์เพิ่มมาอีกโฟลเดอร์หนึ่ง
โดยในโฟลเดอร์จะมีลักษณะสถาปัตยกรรมการเขียนแบบ MCV
Write first view
ใน tutorial จะให้ทดลองใส่คำสั่งเพื่อที่จะให้มีการแสดงผล โดยจะให้แก้ในไฟล์ views.py ในโฟลเดอร์ polls
คำสั่งด้านบนเป็นการสร้าง method และ return ประโยคกลับมาเมื่อเข้าหน้าเว็บ
หลังจากนั้นจะต้องมีการ map ไปยัง url ของตัว project โดยเราจะต้องสร้างไฟล์ urls.py ในโฟลเดอร์ app ของเรา
หลังจากนั้นก็เข้าไปแก้ไขในไฟล์ urls.py ของตัว project
จะเห็นได้ว่ามีการใช้ RegEx ต่างๆในการระบุ url
และมีการใช้ function include() เพื่ออ้างอิงไปยังไฟล์ polls.urls ที่สร้างไว้เมื่อกี้
หลังจากนั้นก็เปิด server แล้วลองเข้า url => localhost:8000/polls
ผลที่ได้จากการทดลอง
Note
url()argument:
- regex จากรูปด้านล่างจะใช้ '^polls/' ^ จะเป็นการขึ้นไลน์ใหม่ โดย URLConf จะค้นหาแค่คำว่า polls/ จากรูปด้านบน '^$' ที่เป็นอย่างนี้ก็เพราะคิดว่าไม่มีการให้ลิงค์ไปที่ url ตัวใด (คิดว่าอย่างนั้น)
- views เป็นการเรียกใช้ method ที่จะต้องการจะให้ทำงาน
- kwargs อันนี้ขอข้ามเนื่องจากทาง tutorial ก็บอกว่าให้ข้ามไปเลย
- name เป็นการกำหนดชื่อเพื่อใช้ในการแก้ไข url ได้สะดวก และ รวดเร็ว
ไม่มีความคิดเห็น:
แสดงความคิดเห็น