วันศุกร์ที่ 4 มกราคม พ.ศ. 2562

Django

Django คือ Web Framework ที่ใช้ภาษา Python เพื่อเป็นตัวช่วยในการทำ Web Application โดยมีเครื่องมือช่วยในการจัดการที่หลากหลาย สามารถปรับขนาดได้ และ มีความปลอดภัยในการใช้งาน


การติดตั้ง Django
ติดตั้งด้วยคำสั่ง python -m pip install django

การสร้างโปรเจค

>>Open Command
>>django-admin startproject mysite
>>cd mysite
>>python manage.py runserver
>>open link http://127.0.0.1:8000/

จะได้หน้าเว็บดังภาพ ซึ่งแสดงว่าทำการติดตั้งสำเร็จแล้ว

จากนั้นก็จะสามารถทำการสร้าง app ใหม่ลงในโปรเจคได้ด้วยคำสั่ง

     py manage.py startapp ชื่อแอพลิเคชั่น

ก็จะได้โฟลเดอร์ใหม่มาอยู่ในโปรเจคของเรา โดยที่ใน 1 โปรเจคนั้นจะสร้างกี่แอพก็ได้ โดยข้อดีของแอพก็คือเมื่อสร้างแล้วสามารถคัดลอกโฟลเดอร์ไปใช้งานต่อในโปรเจคอื่นได้เลย

ทดลองสร้าง app ชื่อ hello 
>> py manage.py startapp hello

เพิ่ม url ให้ app hello
- สร้างไฟล์ urls.py

from django.conf.urls import url
from . import views

urlpatterns = [
url(r'^$',views.index),
]
      
- แก้ไขไฟล์ urls ใน project

from django.conf.urls import url,include
from django.contrib import admin

urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^hello/', include("hello.urls")),
]

เราก็จะได้หน้า app hello ที่ต้องเรียกด้วย url/hello/

แก้ไขไฟล์ views
เพื่อให้ทำการแสดงหน้าต่างที่ต้องการ โดยการเพิ่มคำสั่งในไฟล์ views.py ใน app hello ให้ทำการคืนค่าหน้าที่แสดงตัวอักษร ดังนี้

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse("<h1>Hello World</h1>")

ซึ่งเมื่อเรา run http://127.0.0.1:8000/hello/ จะได้ผลลัพธ์ดังนี้

แต่ถ้าหากว่าเรารันด้วย http://127.0.0.1:8000/ จะได้ผลลัพธ์

เนื่องจากไม่ได้มีการกำหนด url ไว้ว่าค่าเริ่มต้นให้แสดงผลลัพธ์แบบใด ซึ่งสามารถกำหนดได้โดยการกำหนดใน urls.py ของโปรเจคให้เป็นดังนี้

urlpatterns = [
path(r'admin/', admin.site.urls),
url(r'^$',include("hello.urls")),
]

จะเห็นได้ว่า เปลี่ยน url ที่เรียกไปยัง hello.urls จาก url(r'^hello/', include("hello.urls")) เป็น url(r'^$',include("hello.urls"))
เมื่อเปิดหน้าเว็บอีกครั้งผลลัพธ์จะเป็นดังนี้


ไม่มีความคิดเห็น:

แสดงความคิดเห็น