一般的にGoogle App Engineで必要なライブラリを使用することはできますが、GAEにはいくつかの考慮事項があります(GAEはファイル構造を通常は同じ方法で管理しません)この場合、botoとGoogleのクラウドストレージなどを使用する必要があります)。
現在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すると言うだろう/ Lib/site-packages/djangoにある独自のdjangoバージョンを使用してください。しかし、私はdjango 1.6(データベース認証は動作していません)でいくつかの問題を抱えていますが、initにはこのコードが役立ちます。データベース認証はDjango 1.4やDjango 1.5でもうまくいきます。
Google Cloud SQLをDBとして9ヶ月間GAE上でDjangoアプリケーションを実行していて、かなり円滑に動作しています。 – Roger
ロジャーはこの質問にお答えください。http://stackoverflow.com/questions/21002638/django-on-google-app-engine-with-cloud-sql-in-dev-environment – Sandeep