在 Google App Engine 建立 Django project

之前學 Google App Engine 時看了幾部 Youtube影片,說明如何把 Django 開上 Google App Engine,要裝 django-nonrel 什麼的,看起來好像難度不大。

自己嘗試用 PyCharm 開新的 Google App Engine + Django 專案,不過依據他的預設,卻是連最簡單的 Hello World 都開不起來。

上網都找不到正確的解法,於是覺得該是放棄肥大的 Django,而改用webapp2 以及 jinja2,畢竟之前看Udacity 的GAE課程(Web Development Online Course - Udacity)就是用這個當作教學。

花了點時間學了簡單輕巧的 webapp2 以後,今天打開了一本講解GAE的書,偶然發現裡面竟然有講解 Django

看了一下,覺得講的很好,他說可以直接用 Google App Engine SDK 裡面的 django-admin.py 來建立Django 專案。

python "~/google_appengine/lib/django_1_5/django/bin/django-admin.py" startproject myproject

輸入後,沒出現任何提示,而目錄下多了一個目錄,可見是成功了!
不過後來出現種種失敗,就要放棄時,最後偶然間發現我專案目錄下的 settings.py 檔案裡面最前面竟然是
"""
Django settings for myproject project.

For more information on this file, see
https://docs.djangoproject.com/en/1.7/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.7/ref/settings/
"""

這是 Django 1.7 的 settings.py 檔案,但我 App Engine 卻是使用 django 1.5
libraries:
- name: django
  version: "1.5"
靈光一現之下,立馬用 virtualenv 裝一個 Django ==1.5,然後再次執行指令

python "~/google_appengine/lib/django_1_5/django/bin/django-admin.py" startproject myproject

這次終於真正成功了,在專案的跟目錄下新增app.yaml 檔案,和一個main.py 檔案,就可以順利 deploy 到 Google App Engine了

main.py----------

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

app.yaml----------

application: myapp
version: 1
runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: .*
  script: main.application

libraries:
- name: django
  version: "1.5"

接下來在Google App Engine SDK 裡面 Add Existing Applicatoin ,然後點 RUN,就會出現Django 執行成功畫面了


可喜可賀,終於成功把 Django 開上 Google App Engine 了~~

留言

這個網誌中的熱門文章

Anki 教學 - 學習卡片

Anki 教學 - 基礎知識

「健保代碼查詢APP」