บทความ

กำลังแสดงโพสต์จาก เมษายน, 2023

Django 101 : Deploy

Django 101 : Deploy ก่อนอื่นเราจะบอกว่า มันมีบางอย่างที่สำคัญก่อน Deploy  โดยเฉพาะ Database Name และ Login Password host กับ Port  ต่างๆ ใน Setting.py  Pre Deploy  ดังนั้นเราต้องตั้งให้ตรงกับ Production ก่อน คำตอบ คือ ไฟล์ .env นั่นเอง (เคยอธิบายแล้วครั้งหนึ่งในการเชื่อมต่อ Database ว่า การใช้ไฟล์ .env นี้จะมีความปลอดภัยสูงกว่า 1. install python-dotenv  2. สร้าง .env  (คือไฟล์ ที่เป็นตัวแปร แล้วไปใส่แทนใน Setting.py) 3. เขียน .env แทน Setting ดังต่อไปนี้ SECRET_KEY = DEBUG  = false # ตัวนี้ อยู่บน Production ต้องเป็น False  DATABASE  4. ใน setting.py ใส่ดังนี้ from dotenv import load_dotenv import os  load_dotenv() เวลาใช้ DEBUG = os.getenv('SECRET_KEY') production_host = os.getenv('Production_host') ALLOWED_HOST = ['production_host'] if production_host is not null else []  Deploy ในที่นี้เราจะ Deploy ไปบน Heroku (Cloud)  1. สมัครสมาชิก Heroku 2. Create New App 3. สร้าง Database  4. Config ค่า (ให้เหมือนกับ .env) (ถึงตรงนี...

Django 101 : บทที่ 3 Model กับ Database และ migration

Django 101 : บทที่ 3  Model กับ Database และ migration  Django ใช้การเชื่อมต่อกับ Database แบบ (ORM) Object Relational Mapping  (เราไม่จำเป็นต้องเขียนภาษา SQL เลย แต่เราจะเขียน ด้วย Python ผ่าน Class แทน (ความจริงมันเป็น Subclass ของ django.db.models.Model) บทนี้ เราจะใช้ database เป็น mySQL  การติดตั้ง mySQL และการเชื่อมต่อ ก่อนอื่น เราไปสร้าง Schema ใน mySQL (สมมติตั้งชื่อ mySQL ก็ได้) โดย Charactor set ให้เลือกเป็น UTF8 (รองรับภาษาไทย) กด apply 2 คร้ั้ง กลับมาที่โปรเจค เราก็ต้อง install แพ็คเกจชื่อ  mysql-connector-python ด้วยคำสั่งใน cml คือ pipenv install mysql-connector-python แล้วเราก็เข้าไปแก้ไข setting.py เกี่ยวกับ database (ค่า default มันจะเป็น SQLite) ก่อนอื่นเราต้องเพิ่ม  import mysql.connector.django แก้ engine เป็น   mysql.connector.django แก้ NAME เป็น ชื่อ Schema ที่ตั้งไว้ เพิ่ม USER เป็น root เพิ่ม PASSWORD เป็น password1234 เพิ่ม HOST เป็น 127.0.0.1 เพิ่ม PORT เป็น  3306  ถึงตรงนี้ เราจะใช้คำสั่ง python mana...