7 ตุลาคม 2557

Published ตุลาคม 07, 2557 by with 0 comment

Django บน Python ตอนที่ 6: models

สวัสดีครับทุกท่าน บทความนี้จะพาทุกท่านไปรู้กับและเขียน models ใน Django บน Python ครับ
models (โมเดล) เป็นแบบจำลอง เป็นส่วนขยายความสามารถของโปรแกรมในคอมพิวเตอร์ ในการเขียนโปรแกรมในภาษาต่าง ๆ จะมี lib มาให้ แต่อาจจะไม่เพียงต่อหรือตอบสนองการใช้งาน จึงต้องเขียน models ขึ้นมาเพิ่ม
อ่านบทความย้อนหลังได้ที่ python3.wannaphong.com/search/label/Django

วันนี้ผมจะพาทุกท่านไปสร้าง models ของ Django บน Python กันครับ
ให้สร้าง app ก่อน
python manage.py startapp blog

เสร็จแล้วเข้ามายัง blog แล้วเปิดไฟล์
models เขียนโค้ดดังนี้
from django.db import models
# Create your models here.
class Entry(models.Model):
    title = models.CharField(max_length=200)
    body = models.TextField()
    slug = models.SlugField(max_length=200,unique=True)
    publish = models.BooleanField(default=True)
    created = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now=True)
    
    def __str__(self):
        return self.title
        
    class Meta:
        verbose_name = "Blog Post"
        verbose_name_plural = "Blog Post"
        ordering = ["-created"]

รายละเอียด models
CharField เป็นช่องรับข้อความ
TextField เป็นกล่องรับข้อความ
SlugField เป็นเขตข้อมูลที่ใช้รับ Slug
BooleanField เป็นตัวให้คลิกเลือกเป็นเครื่องหมาย ถูก
DateTimeField เป็นเขตข้อมูลที่ใช้รับข้อความวันและเวลา
นอกจากนั้นยังมีอีกมากมาย จะขอกล่าวในบทถัดไปครับ

จากนั้นบันทึกไฟล์เสร็จ เข้าไปที่ไฟล์ settings.py มาที่บรรทัดคำสั่ง INSTALLED_APPS  แล้วเพิ่มคำสั่ง 'blog', ลงไปตามรูป
จะนั้นเปิดคอมมานด์ไลน์ใช้คำสั่ง
 python manage.py syncdb
ระบบจะทำการสร้างฐานข้อมูลที่ต้องใช้ใน models แบบ auto ให้ครับ ต่อไปเราจะตั้งค่าให้ admin เห็นหน้าเขียน blog โดยเข้าไปที่โฟลเดอร์ blog แล้วสร้างไฟล์ admin.py ขึ้นมาเขียนโค้ดดังนี้

from django.contrib import admin
from . import models

admin.site.register(models.Entry) #เป็นการกำหนดให้หน้า admin มองเห็นได้

จะนั้นลองรันดู
python manage.py runserver
เข้ามาที่ http://127.0.0.1:8000/admin/ เมื่อล็อกอินเสร็จจะพบกับ Blog

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)