วันพุธที่ 27 พฤศจิกายน พ.ศ. 2556

Assignment 5 : Django with Template


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




   2.ใช้คำสั่ง ls เพือตรวจสอบว่า มี directory ที่ชื่อ DjangoTestTemplate ที่ได้สร้างขึ้นอยู่ใน directory ที่ต้องการหรือไม่ ซึ่งจะสร้างขึ้นใน home



   3.เมื่อพบว่า directory ถูกสร้างขึ้นเรียบร้อย ให้เปลี่ยนนี้ใหม่ เพราะว่าในdirectoryนี้มีอีก folder หนึ่ง ซึ่งมีชื่อเหมือนกัน เพื่อป้องกันการสับสนจึงต้องเปลี่ยนชื่อใหม่ จาก DjangoTestTemplate เป็น Assignment5 โดยใช้คำสั่ง
        mv DjangoTestTemplate Assignment5
        หรือ
        mv oldname newname


   4.หลังจากเปลี่ยนชื่อแล้ว ให้เข้าไปภายใน directory ที่เปลี่ยนชื่อนี้ โดยคำสั่ง
        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' 
   
   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

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)

def current_datetime(request)ShowDateTime.html:
  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})

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})


   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'),

   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>

  - code ในส่วนของ CurrentDateTime.html
<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>

   11.ทดสอบ output โดยการพิมพ์ url บน browser 
   - 127.0.0.1:8000/date/


   - 127.0.0.1:8000/date/plusday/5/


   - 127.0.0.1:8000/date/now/


















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

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