Building Software System II: Assignment 5 Django with Template
โจทย์กำหนด
- ใช้ Django ร่วมกับ template แสดงวันที่และเวลาปัจจุบัน
- ใช้ Django และ Python แสดงวันที่และเวลาปัจจุบัน
ขั้นตอนการทำงาน
1. เปิด Terminal เพื่อทำการสร้าง Project Django ในที่นี้ใช้ชื่อว่า DjangoTestTemplate
โดยใช้คำสั่ง
django-admin.py startproject DjangoTestTemplate
หรือ
django-admin.py startproject name
1. เปิด Terminal เพื่อทำการสร้าง Project Django ในที่นี้ใช้ชื่อว่า DjangoTestTemplate
โดยใช้คำสั่ง
django-admin.py startproject DjangoTestTemplate
หรือ
django-admin.py startproject name
2.ใช้คำสั่ง ls เพือตรวจสอบว่า มี directory ที่ชื่อ DjangoTestTemplate ที่ได้สร้างขึ้นอยู่ใน directory ที่ต้องการหรือไม่ ซึ่งจะสร้างขึ้นใน home
3.เมื่อพบว่า directory ถูกสร้างขึ้นเรียบร้อย ให้เปลี่ยนนี้ใหม่ เพราะว่าในdirectoryนี้มีอีก folder หนึ่ง ซึ่งมีชื่อเหมือนกัน เพื่อป้องกันการสับสนจึงต้องเปลี่ยนชื่อใหม่ จาก DjangoTestTemplate เป็น Assignment5 โดยใช้คำสั่ง
mv DjangoTestTemplate Assignment5
หรือ
mv oldname newname
mv DjangoTestTemplate Assignment5
หรือ
mv oldname newname
4.หลังจากเปลี่ยนชื่อแล้ว ให้เข้าไปภายใน directory ที่เปลี่ยนชื่อนี้ โดยคำสั่ง
cd Assignment5
หรือ
cd directory
ซึ่งจะพบว่ามี 1 directory ย่อย และ ไฟล์ manage.py
cd Assignment5
หรือ
cd directory
ซึ่งจะพบว่ามี 1 directory ย่อย และ ไฟล์ manage.py
5.ให้ทำการ run server จากไฟล์ manage.py โดย
python manage.py runserver
ทดสอบโดยการ พิมพ์ 127.0.0.1:8000 บน browser
6.สร้าง folder ชื่อว่า Template ไว้ใน directory ของ project ที่สร้าง
7.เข้าไปใน directory ย่อยที่ชื่อ DjangoTestTemplate จากนั้นเปิดไฟล์ setting.py และเข้าไปแก้ไขในไฟล์ ดังนี้
-เพิ่ม code ต่อจาก #Application definition
TEMPLATE_DIRS = ('/home/jaa/Documents/BuildingSoftwareII/Assignment5/Template',)
-แก้ไข time zone เป็น
TIME_ZONE = 'Asia/Bangkok'
TIME_ZONE = 'Asia/Bangkok'
8.สร้างไฟล์ views.py แล้ว save ไว้ใน directory ย่อยที่อยู่ใน project นี้ เพื่อเอาไว้สร้างฟังก์ชันที่ดึงข้อมูลจาก url (ในที่นี้ลองใช้ฟังก์ชัน แสดงวันและเวลา) มี code ดังนี้
from django.template import Template, Context
from django.shortcuts import render
from django.http import HttpResponse
import datetime,time
from django.shortcuts import render
from django.http import HttpResponse
import datetime,time
def display(request):
now = datetime.datetime.now()
t = Template("<html><body>It is now {{ current_date }}</body></html>")
html = t.render(Context({'current_date':now}))
return HttpResponse(html)
now = datetime.datetime.now()
t = Template("<html><body>It is now {{ current_date }}</body></html>")
html = t.render(Context({'current_date':now}))
return HttpResponse(html)
def current_datetime(request)ShowDateTime.html:
now = datetime.datetime.now()
return render(request,'CurrentDateTime.html',{'current_date':now})
now = datetime.datetime.now()
return render(request,'CurrentDateTime.html',{'current_date':now})
def displaytime(request):
i = datetime.datetime.now()
date = datetime.datetime.now().strftime("%d/%m/%Y %H:%M:%S")
today = datetime.date.today().strftime("%d-%B-%Y")
time = datetime.datetime.now().strftime("%H:%M:%S")
return render(request,'ShowDateTime.html',{'date':date,'time':time,'now':today})
i = datetime.datetime.now()
date = datetime.datetime.now().strftime("%d/%m/%Y %H:%M:%S")
today = datetime.date.today().strftime("%d-%B-%Y")
time = datetime.datetime.now().strftime("%H:%M:%S")
return render(request,'ShowDateTime.html',{'date':date,'time':time,'now':today})
def plusday(request,d):
d = int(d)
i = datetime.datetime.now()
day = i + datetime.timedelta(days=d)
return render(request,'PlusDay.html',{'plus_day':d,'day':day})
d = int(d)
i = datetime.datetime.now()
day = i + datetime.timedelta(days=d)
return render(request,'PlusDay.html',{'plus_day':d,'day':day})
9.เปิดไฟล์ url.py ใน directory ย่อยที่อยู่ใน project นี้ แล้วแก้ไขโดยเพิ่ม code ต่อไปนี้
-เพิ่มต่อจาก code url(r'^admin/', include(admin.site.urls)), ที่มีให้ในไฟล์
url(r'^date/$','DjangoTestTemplate.views.current_datetime'),
url(r'^date/plusday/(\d+)/$','DjangoTestTemplate.views.plusday'),
url(r'^now/$','DjangoTestTemplate.views.displaytime'),
-เพิ่มต่อจาก code url(r'^admin/', include(admin.site.urls)), ที่มีให้ในไฟล์
url(r'^date/$','DjangoTestTemplate.views.current_datetime'),
url(r'^date/plusday/(\d+)/$','DjangoTestTemplate.views.plusday'),
url(r'^now/$','DjangoTestTemplate.views.displaytime'),
10. สร้าง html file เก็บไว้ใน folder template 3 ไฟล์เพื่อรองรับการทำงานของฟังก์ชันในไฟล์ views.py โดยใช้ชื่อว่า ShowDateTime.html, CurrentDateTime.html และ PlusDay.html
- code ในส่วนของ ShowDateTime.html
<html>
<body>
<center>
<p><b>Today is</b> {{now}} <b>Time</b> {{time}}</p>
<p><b>Now</b> {{date}} </p>
</center>
</body>
</html>
<body>
<center>
<p><b>Today is</b> {{now}} <b>Time</b> {{time}}</p>
<p><b>Now</b> {{date}} </p>
</center>
</body>
</html>
- code ในส่วนของ CurrentDateTime.html
<html>
<body>
<center>
<p><b>Now</b> {{current_date}} </p>
</center>
</body>
</html>
<body>
<center>
<p><b>Now</b> {{current_date}} </p>
</center>
</body>
</html>
- code ในส่วนของ CurrentDateTime.html
<html>
<body>
<center>
<p><b>Plus Day</b> {{plus_day}} </p>
<p><b>Next</b> {{plus_day}} <b> Day is</b> {{day}} </p>
</center>
</body>
</html>
<body>
<center>
<p><b>Plus Day</b> {{plus_day}} </p>
<p><b>Next</b> {{plus_day}} <b> Day is</b> {{day}} </p>
</center>
</body>
</html>
11.ทดสอบ output โดยการพิมพ์ url บน browser
- 127.0.0.1:8000/date/
- 127.0.0.1:8000/date/now/





























