在Google App Engine中一般可以使用任何庫,但是有必要考慮GAE有一些注意事項(即GAE不會以相同的方式管理文件結構,通常是代碼的某些部分用於做,在這種情況下,有必要使用博託和谷歌雲存儲和其他東西)。
目前GAE還沒有將Django 1.6作爲內置庫(第三方)使用,但GAE允許包含您自己的django版本,沒有限制。你需要在這最後一種情況下修改sys.path和app.yaml。在生產中sys.path的修改,可以例如在wsgi.py使用此代碼:
#wsgi.py ' Locate in main folder
PROJECT_DIR = os.path.abspath(os.path.dirname(__file__))
PACKAGES_DIR = os.path.join(PROJECT_DIR, 'Lib', 'site-packages')
def add_dir_to_path(dir):
if dir not in sys.path or sys.path.index(dir) > 0:
while dir in sys.path:
sys.path.remove(dir)
sys.path.insert(0, dir)
add_dir_to_path(PROJECT_DIR)
add_dir_to_path(PACKAGES_DIR)
#Delete current django version in production
for key in [key for key in sys.modules if key.startswith('django')]:
del sys.modules[key]
os.environ["DJANGO_SETTINGS_MODULE"] = 'myapp.settings'
from google.appengine.ext.webapp import util
# Force Django to reload its settings.
from django.conf import settings
settings._target = None
而且在app.yaml中您可以使用:
application: myappinGAE
version: 1
runtime: python27
api_version: 1
threadsafe: true
env_variables:
DJANGO_SETTINGS_MODULE: 'myapp.settings'
handlers:
- url: /.*
script: wsgi.application
這種變化會說GAE到使用你自己的django版本,它位於/ Lib/site-packages/django。但是,我在使用django 1.6(數據庫身份驗證不起作用)時遇到了一些其他問題,但是對於init,此代碼將對您有所幫助,並且數據庫身份驗證對於Django 1.4或Django 1.5非常適用。
我已經在GAE上運行了一個Django應用程序,現在使用Google Cloud SQL作爲db數據庫,並且發現它運行得非常順利。 – Roger
羅傑你可以請回答這個問題http://stackoverflow.com/questions/21002638/django-on-google-app-engine-with-cloud-sql-in-dev-environment – Sandeep