Skip to content

Django บน Python ตอนที่ 3: ตั้งค่ากับฐานข้อมูลและหน้า admin

สวัสดีครับทุกท่าน หลังจากตอนที่ 2 ผมได้แนะนำการเริ่มต้น Django บน Python กันไปแล้ว บทความนี้จะพาทุกท่านไปตั้งค่า Django เพื่อให้ใช้งานกับฐานข้อมูลต่าง ๆ ได้ครับ

ตั้งค่าฐานข้อมูล MySQL กับ Django

โมดูลที่ต้องการต้องรองรับ Django DB backend ครับ โมดูลที่รองรับคือ mysql-connector-python ครับ

โหลด mysql-connector-python ได้ที่ dev.mysql.com/doc/connector-python/en/index.html โหลดแล้วทำการติดตั้งครับ (ไม่รองรับการติดตั้งผ่าน pip นะครับ)

เมื่อทำการติดตั้งแล้วให้เข้าไปแก้ไขที่ไฟล์ settings.py ครับ

DATABASES = {
    'default': {
        'NAME': 'user_data', #ชื่อฐานข้อมูล
        'ENGINE': 'mysql.connector.django',
        'USER': 'mysql_user', #ชื่อผู้ใช้
        'PASSWORD': 'mysql_', #รหัสผ่าน
       'HOST': 'dbhost', #โฮมฐานข้อมูล
       'PORT': '3306' #port ของโฮมฐานข้อมูล
    }

}

แล้วบันทึกไฟล์ครับ

ตั้งค่าฐานข้อมูล PostgreSQL กับ Django

ให้ติดตั้งโมดูล psycopg2 ครับ เมื่อต้องการเสร็จแล้วให้เข้าไปแก้ไขที่ไฟล์ settings.py ครับ

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'db_name',  #ชื่อฐานข้อมูล                 
        'USER': 'db_user', #ชื่อผู้ใช้
        'PASSWORD': 'db_user_password', #รหัสผ่าน
        'HOST': '' #โฮมฐานข้อมูล
    }
}

ตั้งค่าฐานข้อมูล Oracle กับ Django

ให้ผู้อ่านทำการติดตั้งโมดูล  cx_Oracle โดยทำตามนี้ครับ python3.wannaphong.com/2014/08/Oracle-Python.html เมื่อติดตั้งเสร็จแล้วให้เข้าไปแก้ไขที่ไฟล์ settings.py ครับ

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.oracle',
        'NAME': 'db_name',  #ชื่อฐานข้อมูล                 
        'USER': 'db_user', #ชื่อผู้ใช้
        'PASSWORD': 'db_user_password', #รหัสผ่าน
        'HOST': '' #โฮมฐานข้อมูล
    }
}

ตั้งค่าฐานข้อมูล SQLite3 กับ Django

ผู้อ่านไม่ต้องไปแก้ไขอะไรหลังติดตี่งตั้งแต่แรกครับ  โดยในไฟล์ settings.py จะเป็นแบบนี้ครับ

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), #db.sqlite3 คือชื่อไฟล์ฐานข้อมูลsqlite3
    }
}

เปิดการใช้งานหน้า admin ใน Django

เมื่อตั้งค่าฐานข้อมูลเสร็จแล้ว เราจะมาเปิดการใช้งานหน้า admin ใน Django กันครับ ให้ใช้คำสั่ง

python manage.py migrate

จะมีให้กรอก username, email, password  ของ admin ครับ โดยอย่าลืมเลยนะครับ เสร็จแล้วให้เข้าไปที่ไฟล์ settings.py โดยเอา # ตรง #'django.contrib.admin', ใน INSTALLED_APPS ออกแล้วบันทึกไฟล์

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
)

แล้วเข้าไปที่ไฟล์ urls.py แล้วแก้ไขจาก

from django.conf.urls import patterns, include, url
from hello.views import myfunction

# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    #url(r'^$', 'sample.views.home', name='home'),
    # url(r'^sample/', include('sample.foo.urls')),
    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    # Uncomment the next line to enable the admin:
    # url(r'^admin/', include(admin.site.urls)),
)

เป็น

from django.conf.urls import patterns, include, url
from hello.views import myfunction

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    #url(r'^$', 'sample.views.home', name='home'),
    # url(r'^sample/', include('sample.foo.urls')),
    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    # Uncomment the next line to enable the admin:
    url(r'^admin/', include(admin.site.urls)),

)

บันทึกไฟล์แล้วรันหน้าเว็บโดยใช้คำสั่ง

python manage.py runserver

แล้วเข้าไปที่ http://127.0.0.1:8000/admin ครับ จะพบกับหน้าล็อกอิง Admin เมื่อล็อกอินเข้าไปแล้วจะพบกับหน้าดูแลของ Admin ครับ

หน้า Login admin

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

Published on Categories Django, web-developer, web-framework

About wannaphong

วรรณพงษ์ ภัททิยไพบูลย์ ผู้ดูแลเว็บ wannaphong.com และผู้เขียนบทความบล็อกนี้ นักศึกษาชั้นปีที่ 1 สาขาวิทยาการคอมพิวเตอร์และสารสนเทศ คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย

10 thoughts on “Django บน Python ตอนที่ 3: ตั้งค่ากับฐานข้อมูลและหน้า admin

  1. แรมโบ้

    ผมติดตรงการ ใช้ pip install mysql-connector-python อ่ะครับ
    มันบอกว่า Could not find a version that satisfies the requirement mysql-connector-python

    Reply
  2. จิรายุ

    ตอน runserver , syncdb ของผมขึ้น AttributeError: 'module' object has no attribute 'PY2' ฐานข้อมูลใช้ MySQL รบกวนด้วยครับมือใหม่ ไม่รู้ว่าผมลืมขั้นตอนไหนไป

    Reply
    1. wannaphong

      ลองใช้คำสั่ง

      pip install --upgrade six

      ครับ เป็นการอัพเกรตโมดูล six เป็นโมดูลที่ช่วยให้โค้ดสามารถทำงานได้ทั้งไพทอนสองและไพทอนสามครับ รู้สึกว่าโมดูลไม่ได้ถูกอัพเกรตครับ
      https://stackoverflow.com/questions/24081043/module-object-has-no-attribute-py2

      Reply
  3. foam

    ตั้ง Django ให้เป็น utf-8 ยังไงคะ พอดี เพิ่มข้อมูลเป็นภาษาไทยเข้าไป แต่มันเป็นเครื่องหมาย ??? ค่ะ

    Reply
  4. Sasichan

    ของผม ขึ้น Unknown command

    C:\Users\anurak\venv\src1>python manage.py syncdb
    Unknown command: 'syncdb'
    Type 'manage.py help' for usage.

    น่าจะเกิดจากการที่ผมใช่ Django คนละเวอร์ชั่นกับตัวอย่าง
    รบกวนหน่อยนะครับ

    Reply

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *