Django คืออะไร ?
Django คือ open source web framework ตัวหนึ่งที่
1. ฟรี
2. เขียนด้วย Python
framework คืออะไร?
framework คือตัวช่วยในการสร้าง websites ที่ทำให้งานเราง่ายขึ้นและสะดวกขึ้น ตัวอย่างเข่น ระบบ authentication ( sign up, sign in, บลาๆ ), การจัดการ form บน website หรือแม้การโหลดไฟล์ก็ตาม
ทำให้ปัญหาเดิมๆที่เราต้องเผชิญเวลาสร้าง websites ใหม่ๆมีน้อยลงด้วยการใช้ของสำเร็จที่ django เขาสร้างมาเรียบร้อยแล้ว
Installation
- install python
install Homebrew ลง package manager ก่อนเลย เพื่อลง Setuptools และ pip ให้เรา
$ /usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)“
และลง python3
$ brew install python3
2. install virtualenv
สร้าง virtual environment สำหรับ project เรา
$ mkdir django_project
$ cd django_project
$ virtualenv venv
(http://docs.python-guide.org/en/latest/dev/virtualenvs/)
คำสั่งนี้ virtualenv venv จะ สร้าง folder ใน current directory
และเราจะเลือกใช้ Python3 ในนี้ ด้วยคำสั่ง
virtualenv -p python3 venv
3. install Django
คราวนี้เมื่อเราได้ virtualenv สร้าง environment เรียบร้อยแล้ว เราก็มาลง Djangoกันได้เลย
แต่แน่นอน ก่อนอื่นต้องมั่นใจว่าเราได้ pip เวอร์ชั่นล่าสุดก่อน
$pip install –upgrade pip
$ pip install django
ถ้า django ถูกลงแล้ว จะต้องเห็น version
$ python -m django –version
เริ่มโปรเจคกัน
อย่าลืมว่าเราต้องรันทุกอย่างของโปรเจคนี้ใน virtualenv จึงต้อง activate กันก่อน
เข้าไปใน directory ที่แล้วต้องการแล้ว
source myvenv/bin/activate
ต่อด้วย
(venv) ➜ django_project$ django-admin startproject mysite .
คำสั่งนี้จะ auto-generate โค้ดเพื่อสร้าง Django Project ให้แก่เรา
mysite/ manage.py mysite/ __init__.py settings.py urls.py wsgi.py
# ต้องใช้ . ด้วย เพื่อบอก script ว่า install django ใน current directory นะ และทำให้ไฟล์ manage.py ก็จะมาอยู่ใน directory นี้ ซึ่งเป็นตัวสำคัญที่ต่อไปจะเป็นตัว start server ให้
# django-admin.py คือสคริปต์ที่จะสร้าง directory แล้ว file ให้เรา
# settings.py คือ configuration ของ website
แก้ Configuration เรื่อง Time zone กันก่อน
# เข้า mysite/settings.py ไป set เวลา timezone เซตที่ TIME_ZONE = ‘Asia/Bangkok’
# ตรง debug = True
ALLOW_HOSTED = [’127.0.0.1’]
ตัว allowed_hosts เหมือนเป็นการระบุ whitelist ของ domain ว่า site ไหนปลอดภัยแก่การ respond ซึ่งตัว Django นั้นเองเป็นคนสร้าง security ตัวนี้เพื่อป้องกันปัญหาเรื่อง Phishing attack นั่นเอง
Phishing ออกเสียงเหมือน Fishing เป็นการตกเบ็ด นั่งรอเฉยๆเพื่อให้เหยื่อเข้ามาหาเอง อย่างเช่น การที่สร้าง websites ปลอม หน้าตาดูเชื่อถือ เพื่อให้เราเชื่อแล้วกรอกข้อมูลส่วนตัว คนรอเบ็ดก็วินไปได้ข้อมูลเราไปใช้ทำมิดีมิร้ายด้าย
(https://www.djangoproject.com/weblog/2013/feb/19/security/)
เซต database
เข้ามาใน mysite/settings.py
เราเลือกใช้ SQLite เพราะเป็น default ของ python อยู่แล้ว ไม่ต้องทำอะไรเพิ่ม แต่ถ้าอยากได้ database ที่ scalable กว่าก็เลือก PostgreSQL ไปนะแจ๊ะ
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.sqlite3’, // ไม่ก็ ‘django.db.backends.postgresql’
‘NAME’: os.path.join(BASE_DIR, ‘db.sqlite3’), // ถ้าใช้ sqlite3 ตัว database จะสร้างไฟล์ลงในเครื่องของเราให้เลย
}
}
ถ้าใช้นอกเหนือ SQLite ล่ะก็ ต้องรันคำสั่ง “CREATE DATABASE database_name;” ด้วยนะ
Migrate
ในส่วนต้นๆของไฟล์ ที่ INSTALLED_APPS จะมีชื่อของ Django Applications ต่างๆมาเป็น default ให้อยู่ละ
พวก apps เหล่านี้จะต้องใช้ database เราจึงต้อง create database ขึ้นมาถึงจะใช้ apps เหล่านี้ได้
$ python manage.py migrate
( ต้องอยู่ที่ๆมี manage.py นะแจ๊ะ)
คำสั่งนี้จะ create และ update database ไปในตัว
Start web server
มาดูหน่อยซิว่า work ไหม
(venv) ➜ django_project$ python manage.py runserver
เปิดเข้าไปใน http://127.0.0.1:8000/ แล้วก็จะพบกับ


เย้
Leave a reply to [Python] Django Project: 02 Get image via API | mesodiar Cancel reply