ติดตั้ง Django Framework
1 | pip install django==1.10 |
สร้าง Django Project
1 2 | # django-admin startproject [project-name] django-admin startproject first_project |
เมื่อทำการสร้างแล้วเราจะได้โครงสร้าง Project แบบนี้ครับ
1 2 3 4 5 6 7 8 9 | / first_project | |--/ first_project | |-- __init__.py # ไฟล์เปล่า เพื่อให้ Python รู้ว่าเป็นโฟลเดอร์แพ็กเกจ | |-- settings.py # ไฟล์ที่เก็บค่า Setting เกี่ยวกับ Project ไว้ | |-- urls.py # ไฟล์ที่เก็บข้อมูลเกี่ยวกับ URL Mapping | |-- wsgi.py # ไฟล์ที่ใช้งานตอน Deployment | |-- manage.py # ไฟล์จัดการต่างๆ เช่น run server, create application |
ทดสอบว่าทำงานได้ปกติโดยการใช้คำสั่ง runserver ใน Folder Project
1 | python manage.py runserver |
สร้าง Django Application
Django Project เราสามารถเพิ่ม Application เข้าไปได้หลายตัว1 2 | # python manage.py startapp [application-name] python manage.py startapp first_app |
เมื่อสร้างแล้วจะได้โฟลเดอร์ Application เพิ่มเข้ามาโครงสร้างแบบนี้
1 2 3 4 5 6 7 8 9 | / first_app |--/ migrations # เก็บข้อมูล database ที่ใช้กับ data models | |-- __init__.py # ไฟล์เปล่า เพื่อให้ Python รู้ว่าเป็นโฟลเดอร์แพ็กเกจ |-- admin.py # ไฟล์ข้อมูล models เพื่อให้ Django ใช้กับ admin interface |-- apps.py # ไฟล์ข้อมูล application เพื่อตั้งค่าต่างๆ |-- models.py # ไฟล์ข้อมูล data models |-- tests.py # ไฟล์เก็บ function ที่ใช้ในการทดสอบ |-- views.py # ไฟล์เก็บ function จัดการ request และ response |
เมื่อทำการสร้าง first_app แล้วให้แก้ไขไฟล์ views.py เพื่อไว้ครูก่อน
1 2 3 4 5 6 | from django.shortcuts import render from django.http import HttpResponse # Create your views here. def index(request): return HttpResponse( "Hello World!" ) |
เสร็จแล้วให้ไปเพิ่มข้อมูลที่ไฟล์ settings.py และ urls.py ใน Project folder
1 2 3 4 | INSTALLED_APPS = [ ..., 'first_app' ] |
1 2 3 4 5 6 7 8 | ... from django.conf.urls import url from first_app import views urlpatterns = [ ... url(r '^$' , views.index, name = 'index' ), ] |
การทำ URL Mappings
ตัวอย่างนี้เป็นสร้างไฟล์ urls.py ที่ Application เพื่อให้เราไม่ต้องไปเพิ่มข้อมูลไฟล์ urls.py ที่ตัว Project ทุกครั้งที่สร้าง method ใหม่สร้างไฟล์ urls.py ใน Application folder
1 2 3 4 5 6 | from django.conf.urls import url from first_app import views urlpatterns = [ url(r '^$' , views.index, name = 'index' ), ] |
เปิดไฟล์ urls.py ใน Project folder เพื่อเพิ่มข้อมูล url mapping ของ Application ลงไป
1 2 3 4 5 6 7 8 | ... from django.conf.urls import include, url urlpatterns = [ ... url(r '^first_app/' , include( 'first_app.urls' )), ] ... |
การใช้งาน Template และ Static
สร้าง Templates folder ใน Project folder และสร้าง Application folder ข้างใน Templates folder อีกที จะได้หน้าตาประมาณนี้1 2 3 4 5 6 | / first_project |--/ first_app |--/ first_project |--/ templates | |--/ first_app | |-- index.html # Template file with Django template tag |
แก้ไขไฟล์ settings.py ใน Project folder เพิ่มตัวแปร TEMPLATE_DIR และเพิ่มข้อมูลที่ TEMPLATE = []
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | ... BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) TEMPLATE_DIR = os.path.join(BASE_DIR, "templates" ) ... TEMPLATES = [ { 'BACKEND' : 'django.template.backends.django.DjangoTemplates' , 'DIRS' : [TEMPLATE_DIR], 'APP_DIRS' : True , 'OPTIONS' : { 'context_processors' : [ 'django.template.context_processors.debug' , 'django.template.context_processors.request' , 'django.contrib.auth.context_processors.auth' , 'django.contrib.messages.context_processors.messages' , ], }, }, ] ... |
เสร็จแล้วสร้างไฟล์ index.html ใน Templates folder
1 2 3 4 5 6 7 8 9 10 11 12 | <!DOCTYPE html> < html lang = "en" > < head > < meta charset = "utf-8" > < title >First Apps</ title > </ head > < body > < h1 >Hello this is index.html</ h1 > {{ insert_me }} </ body > </ html > |
แก้ไขไฟล์ views.py ใน Application folder
1 2 3 4 5 6 7 | from django.shortcuts import render from django.http import HttpResponse # Create your views here. def index(request): my_dict = { 'insert_me' : "Hello I am from views.py" } return render(request, 'first_app/index.html' , context = my_dict) |
1 2 3 4 5 6 7 8 9 10 | ... BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) TEMPLATE_DIR = os.path.join(BASE_DIR, "templates" ) STATIC_DIR = os.path.join(BASE_DIR, "static" ) ... STATIC_URL = '/static/' STATICFILES_DIRS = [ STATIC_DIR, ] ... |
แก้ไข Template file เพื่อให้โหลดไฟล์ Static ได้
1 2 3 4 5 6 7 8 9 10 11 12 13 | <!DOCTYPE html> {% load staticfiles %} < html lang = "en" > < head > < meta charset = "utf-8" > < title >Django Static File</ title > </ head > < body > < h1 >Hi, this is a picture of Django himself!</ h1 > < img src = "{% static " images/static.jpg" %}" alt = "" > </ body > </ html > |
ไม่มีความคิดเห็น:
แสดงความคิดเห็น