บทความนี้ผมจะพาผู้อ่านไปทำ Template ของ Django กันครับ
อ่านบทความย้อนหลังได้ที่ python3.wannaphong.com/search/label/Django
ให้ผู้อ่านสร้าง project ชื่อ a4 แล้วเข้าไปยังโฟลเดอร์ a4
python django-admin.py startproject a4
ให้สร้าง app โดยใช้คำสั่ง
python manage.py startapp hello
แล้วให้ผู้อ่านสร้าง โฟลเดอร์ template ในโฟลเดอร์หลัก a4 ให้สร้างไฟล์ base.html แล้วใส่โค้ดตามนี้
<html> <head> <title>I am Template</title> </head> <body> <h1>Welcom to My web</h1> <h1>{% block content %} {% endblock %}</h1> </body> </html>
บันทึกไฟล์ ต่อมาสร้างไฟล์ home.html
{% extends "base.html" %}
{% block content %}
{{ hello }}
{% endblock %}
บันทึกไฟล์ เสร็จแล้วให้เข้าไปยังโฟลเดอร์ hello แล้วเปิดไฟล์ views.py เพิ่มโค้ดลงไปดังนี้
from django.http import HttpResponse from django.template.loader import get_template from django.template import Context def index(request): hello = "Hello World!" t = get_template("home.html") html = t.render(Context({'hello':hello})) return HttpResponse(html)
เสร็จแล้วบันทึกไฟล์ ให้เข้าไปแก้ไขไฟล์ settings.py ตรง
INSTALLED_APPS = ( .. .. 'hello', )
ให้ใส่ 'hello', ลงไปครับ ต่อมาแก้ไขตรง
TEMPLATE_DIRS = ( # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". # Always use forward slashes, even on Windows. # Don't forget to use absolute paths, not relative paths. )
ให้เพิ่มที่อยู่ของโฟลเดอร์ template ในระบบไฟล์ของเครื่อง ที่เราสร้างลงครับ ตัวอย่างเช่นของผมเป็น
TEMPLATE_DIRS = ( 'C:/django/a4/template', # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". # Always use forward slashes, even on Windows. # Don't forget to use absolute paths, not relative paths. )
บันทึกไฟล์เสร็จ ให้ผู้อ่านเปิดไฟล์ urls.py แก้ไขตรง
urlpatterns = patterns('', url(r'^$', 'hello.views.index'), #กำหนดให้หน้าหลักเรียกใช้งาน app hello ไฟล์ views.py ตรงที่ index )
เรียบร้อยแล้วลองรันดูครับ
python manage.py runserver
เข้ามาที่ http://127.0.0.1:8000/ จะพบกับ
โค้ดตัวอย่าง http://bit.ly/1reXK1P
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)