2012-02-12 9 views
2

DjangoプロジェクトをGoogle App Engineに移行し、Googleのデータストアを使用するためのガイドを探しています。私が見つけたガイドのほとんどはDjango-nonrelを使ってDjango-Appengineにリンクされていました(しかし私はGAEのネイティブサポートを使いたい)。 GAE getting started guideを通って行くDjangoプロジェクトをGoogle App Engineに移行する方法

、それは言う:

Google App EngineがCGI(およびCGIアダプタを使用して、任意のWSGI準拠のフレームワーク)はDjango、CherryPyに、パイロンを含むが、話す純粋なPythonで書かれた任意のフレームワークをサポートし、 web.py、およびweb2py。 アプリケーションコードにアプリケーションコードをコピーすることで、選択したフレームワークをアプリケーションコードにバンドルすることができます。

私は、その場合にはジャンゴの一部の機能を使用することができませんことを理解し(管理者機能をすぎなかった)ともモデルを再構築する必要があります。

他の記事から、最新のGAE SDKにPython 2.5にDjango 1.3が含まれていることがわかりました。

私はDjangoアプリケーションからGAEプロジェクトにすべてのファイルを書き込もうとしましたが、すべて一緒に動作させることができませんでした。

DjangoプロジェクトをGoogle App Engineのコードに移行するための基本的なガイドをいくつかご用意ください。

ありがとうございました。

答えて

1

すでにDjangoアプリケーションをお持ちの場合は、thisをチェックしてください。App Engineのデータストアでは動作しませんが、Google Cloud SQLがニーズに合っている可能性があります。

+0

Google Cloud SQLの移行ガイドはかなり良いです。 [このページで](https://developers.google.com/cloud-sql/docs/django)の「App EngineへのDjangoプロジェクトの移植」のセクションで詳細を説明します。 – Pratyush

2

私はdjango-nonrelを使用しました。これは、JOINの操作でエラーが返される点を除いて、djangoとよく似ています。私は基本的にManyToManyフィールドを避け、中間テーブルを使って手動でその機能を構築することでこれを解決しました。

これまでDjango-nonrelには2つの問題がありました。 1.トランザクションで実行できる祖先クエリへのアクセス権がありません。ただし、この機能の保留中のプルリクエストがあります。 2.索引付けされていないフィールドは指定できません。これにより、書き込みコストが大幅に増加する可能性があります。私はこれを修正する考えがありますが、私はまだそれをしていません。
(編集:インデックスに登録されていないフィールドを指定することができますが、これは正常に動作していることを確認しました)。 2(新) Googleは、自動キャッシュとバッチ処理を行うndbという新しいデータベースバックエンドを導入しています。これはdjango-nonrelでは利用できません。

django-nonrelを使用しない場合、主な違いはDjangoモデルがApp Engineで実行されないことです。 App Engineのdb.Modelから継承するようにモデルを書き直す必要があります。 DjangoのModelFormを使用するフォームは、代わりにgoogle.appengine.ext.db.djangoformsから継承する必要があります。 App Engineを利用したら、Djangoを移植する必要があります。

2

既存のDjangoアプリケーションでは、django-nonrelを使用するのが最も簡単な方法です。それは非常に一般的ですので、すぐに取得する特定のエラーに関するヘルプを見つけることができるはずです。

もう1つのアプローチは、http://code.google.com/appengine/articles/pure_django.htmlです。これは、モデルではなく、ディスパッチ、テンプレート、フォームにDjangoを使用するApp Engineアプリを使用し、実行方法を説明していますネイティブのDjango環境で動作します。たぶんあなたはそれからあなたの状況のた​​めのいくつかの有用なヒントを集めることができます。

+1

リンクが切れています。 –

関連する問題