series content :
django settings.py ติดต่อฐานข้อมูล Cloud SQL
DATABASES = {
'default': {
'ENGINE': 'google.appengine.ext.django.backends.rdbms',
'INSTANCE': 'project-id:instance1',
'NAME': 'my_database_name',
}
}
ตั้งค่า INSTANCE และชื่อฐานข้อมูลตามที่สร้างไว้ใน https://code.google.com/apis/console
ตอนนี้เราอยากทดลองติดต่อฐานข้อมูล Cloud ให้ได้ก่อน โดยยังไม่ต้องเขียน models เอง วิธีง่ายสุดเปิดใช้ django.contrib.admin กับ auth (ระบบ login) ที่มากับ django นี่ล่ะ
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
)
Environment Variables - PYTHONPATH
*ENGINE : 'google.appengine.ext.django.backends.rdbms' นี้อยู่ใน lib ของ google_appengine\lib\django_1_3 ซึ่งใน windows เราต้อง set PYTHONPATH ไว้ก่อนไม่งั้นตอนรัน manage.py จะหา lib ไม่เจอ
> Advanced system settings > Advanced tab > Environment Variables..
ใน System Variables เลือก PYTHONPATH click Edit..
ใส่ path ของ sdk เข้าไป เช่น C:\Program files\Google\google_appengine;C:\Program files\Google\google_appengine\lib\django_1_3 ถ้าไม่มี PYTHONPATH กด New... ใส่ค่าเข้าไปเลย
OAuth2 Authentication - syncdb
แล้วจะใช้คำสั่ง manage.py syncdb เพื่อสร้างฐานข้อมูล
ตอนนี้เราสั่งสร้างฐานข้อมูลใน Cloud SQL จากเครื่อง developer จึงต้องมีการ Login ก่อน (Authentication on the Python Development Web Server)
![]() |
| manage.py require oauth2 authentication |
กดอนุญาติ แล้ว appengine จะสร้างเก็บ OAuth2 token ไว้ในเครื่องเรา
![]() |
| %USERPROFILE%\.googlesql_oauth2.dat |
กลับมาดูที่หน้า API Console เปิดดูฐานข้อมูลที่เพิ่งสร้าง (ในตัวอย่าง database ชื่อ my_django_app)
![]() |
| SQL Promt: SHOW TABLES |
แก้ไฟล์ urls.py สำหรับเข้าหน้า admin (https://docs.djangoproject.com/en/1.3/intro/tutorial02/)
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'myapp.views.home', name='home'),
# url(r'^myapp/', include('myapp.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)),
)
Into the Cloud
*note: ก่อนจะ deploy
ใน app.yaml ต้องตั้งชื่อ application: myapp ตามที่สร้างไว้ใน https://appengine.google.com/
ไฟล์ settings.py แก้ ROOT_URLCONF ไม่ต้องมี namespace (GAE ใช้ build in package)
ROOT_URLCONF = 'urls' #'django-cloudsql.urls'
ทดลองรัน project ในเครื่อง localhost:8080/ ถ้าไม่มีปัญหาก็ใช้ launcher กด deploy หรือใช้คำสั่ง
appcfg.py update myapp
สุดท้าย project นี้ก็ขึ้นไปอยู่บน cloud แล้ว.. http://django-cloudsql.appspot.com/admin/
เป็นอันว่า deploy Django ใน App Engine ใช้งานฐานข้อมูล Cloud SQL ได้สำเร็จ
หลังสงกรานต์จะกลับมาทดลองสร้าง app ต่อ






ไม่มีความคิดเห็น:
แสดงความคิดเห็น