Django 101 : บทที่ 1 เริ่มต้นสร้าง APP

Django 101 : บทที่ 1 เริ่มต้นสร้าง APP

App หรือ Web Application เริ่มต้นที่เราจะสร้าง  เพียงแค่สร้าง Form เพื่อกรอกข้อมูล และ ส่งไปบันทึกใน Database และเรียกมาแสดงเท่านั้น


แนวทางการเขียน Django ใน Pycharm
(กรณี ใช้ Pycharm เป็น IDE แบบ Community Edition จะต้องสร้าง Environment ให้เสร็จก่อน แล้วมาลง Django ใน CML อีกที หรือ Terminal ด้านล่าง Pycharm

1. ใช้คำสั่ง pip install django (ต้องเชื่อมต่อ Internet) 

มาถึงตรงนี้ ถ้ามีข้อความ error ให้ลองพิมพ์คำสั่งนี้

Get-ExecutionPolicy

ถ้าขึ้นว่า  
Restricted คือ Windows Defender มันบล็อกการทำ Server อยู่ให้ปลดด้วยคำสั่งนี้

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force


2. ถัดมาพิมพ์คำสั่ง django-admin startproject ชื่อโครงการ

เมื่อเสร็จแล้ว ใน Project จะมีโฟลเดอร์  แม้จะมี Django แล้ว เราต้อง cd เข้าสู่โปเจ็ค

3. ให้เราพิมพ์คำสั่ง django-admin startapp ชื่อApp  

4. แก้ไข ไฟล์ Setting.py ดังนี้

4.1  เพิ่ม APP ที่เพิ่งลงไป ในไฟล์ setting.py
4.2  ใน Template ส่วน DIR ให้ใส่ คำสั่งนี้ลงไป
import os
Template   [os.path.join(BASE_DIR, 'templates')], 
** กรณีนี้ มันจะไม่รู้จัก os ต้องใช้คำสั่ง import os  ด้านบนด้วย

4.3 แก้เป็นภาษาไทย
LANGUAGE_CODE = 'TH-th'
TIME_ZONE = 'Asia/Bangkok' 

4.4 ตั้งโฟลเดอร์ Static 

STATIC_URL = 'static/'

STATIC_ROOT = "static/"

กรณี หาไฟล์ Static ไม่เจอให้ใช้คำสั่ง
$ python manage.py collectstatic
คือ มันจะรวบรวม Static ในทุก app ไปไว้ที่ static_root 

4.5 ตั้งค่า Folder สำหรับ Media (กรณี มีการให้อัพโหลด.

MEDIA_ROOT = 'D:\\django_projects\\django_file_sharing\\dj_file_sharing\\main\\media'

MEDIA_URL = 'media/'

4.6 กรณี เชื่อมต่อ Database เป็น PostgreSQL (สร้าง Database ใน ProsgreSQL มาให้เรียบร้อยก่อน) และ 
pip install psycopg2 ให้เรียบร้อยก่อน

DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.postgresql_psycopg2',

        'NAME': 'your_db_name', *******

        'USER': 'postgres',

        'PASSWORD': 'your_db_password', ****

        'HOST': '127.0.0.1', 

        'PORT': '5432',

    }

}

** เกี่ยวกับ ไฟล์ Setting นี้เราสามารถสร้าง Folder ชื่อ setting แล้ว เอาไฟล์ setting ย้ายไปวางได้ แต่ต้องมีไฟล์เปล่า ชื่อ __int__.py ไปวางไว้ด้วย และต้องไป Config ใน manage.py ให้ไปรัน แทนที่ ชื่อแอป.setting เป็น ชื่อแอป.setting.setting  อีกที


5. ถัดมาเรา Test ด้วยการพิมพ์ python manage.py runserver แล้วเอา IP ที่ได้มาไปเปิดใน Browser อีกที

แต่ยังไม่จบ เราต้อง migrate อีก  เราต้องกด Control+C เพื่อออกจาก Server Mode 

6. แล้วพิพม์ python manage.py migrate อีกที (เป็นการเชื่อมต่อ Database ถ้าไม่ทำ จะสร้าง superuser ใน Step ถัดไปไม่ได้)

7. ต่อมาสร้าง Super User ด้วยคำสั่ง python manage.py createsuperuser (มันจะให้กรอก Login Email Password)

เมื่อสร้างเสร็จ จะเข้าหน้า /admin ได้แล้ว และจะมี User 1 คนแล้ว

แต่ถ้าจะเอาให้จบ ต้อง สร้าง โฟลเดอร์ Template ไว้ใน App ด้วย

8. ตรวจสอบว่า ลง Package อะไรไปแล้วบ้าง ด้วยคำสั่ง (เวลาย้ายเครื่องจะได้ลงตามนั้น)

pip freeze 

โครงสร้างโฟลเดอร์และไฟล์ต่างๆ 
เมื่อสร้าง Project และ App 1 ตัวสำเร็จ โครงร่างของโฟลเดอร์จะประมาณนี้ (สังเกตว่า Template จะมี 2 ที่ คือ ตรง app_name/templates/app_name/ ของตัวลูก และ Project_name/templates  สำหรับของไฟล์ base

project_name/
    app_name/
        templates/
            app_name/
                template_file.html

    project_name/
        settings.py

    templates/
        base.html

    static/
        css/
        js/
        img/

(Project Name >>1. Project_Name + 2. app_Name + 3. Template(Base.html) + 4. Static

File ของ Project 
Folder ที่เก็บไฟล์ของ Project จะอยู่ที่ Project_Name>> Project_Name จะประกอบไปด้วยไฟล์ ดังนี้
1. manage.py สำหรับเก็บ Script ต่างๆ เช่น runserver makesuepruser makemigration migrate
2.__int__.py เป็นที่เก็บ Package ต่างๆ
3. setting.py สำหรับตั้งค่าต่างๆ ของโปรเจ็ค
4. urls.py เป็นไฟล์สำหรับจับคู่ urls กับ View (จะอธิบายในตอนหลัง)
5. wsgi.py เป็นไฟล์สำหรับใช้ Deploy หรือ Production 

9.APP
เริ่มต้นเราจะสร้าง app ชื่อ name ด้วยคำสั่ง
python manage.py startapp members

ถึงตรงนี้ Django จะสร้าง โฟลเดอร์ใน Project ชื่อ name ดังนี้

my_tennis_club

    manage.py

    my_tennis_club/

    members/

        migrations/

            __init__.py

        __init__.py

        admin.py

        apps.py

        models.py

        tests.py

        views.py

จะเห็นว่า ถึงตรงนี้ เราจะมีไฟล์ ทั้งหมดเรียบร้อยที่กล่าวไว้ก่อนหน้านี้เรียบร้อยแล้ว

บทถัดไป เราจะเริ่มต้นเรียนรู้ ไฟล์ต่างๆ เหล่านี้

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

KoolMocyc : Forza 350 สเปกต่างๆ และการแก้ไข

Stable Diffusion 101 : Extension : AnimateDiff

KoolMocyc : Forza 350 : ปัญหาประจำตัว