2011-09-01 4 views
11

既存のデータベースバックアップのDjangoサイトがあるとします。単一のモデルのように、すべてのマイナーリーグ野球チームの記録を含むシンプルなもの。モデルは、すべてのチームをリストする1つのビューと、スラッグを受け入れ、そのチームに関する詳細ページを作成する別のビューによってアクセスされます。Djangoサイトを静的ファイルとしてベーキングするための良いオプションはありますか?

Amazon S3のような静的ファイルサービスから配信できるように、アプリを焼き出されたフラットファイルのスタックに変換する良いオプションはありますか?

私はHydeとおもしろいが、それがデータベースに裏打ちされた既存のサイトにどのように適用されるかはわかりません。

アドバイスをいただければ幸いです。前もって感謝します。

答えて

2

django-medusaは、ほとんど維持されません。 Los Angeles Times Data Deskで素敵な人々を構築し、維持し

0

動的サイトを静的環境でホストすることは不可能です。唯一の方法は、すべてのファイルをエクスポートして静的サーバーに入れることです。あなたはwgetでそれを行うことができます、それはすべてのファイルをコピーし、それらをHTMLに変換します。

この問題の1つのフォールバックは、ページへのリンクがある場合にのみ、htmlファイルを作成できることです。検索フォームなどが動作しません、JavaScriptベースのリンクが動作しない可能性があります。

+0

ありがとうございます。ダイナミックな静的な問題について私は完全にあなたのことを聞いています。私のファンタジーの妄想には、あなたのデータベースをループして、内側からwgetのように、ページを1つずつベーキングする滑らかなPythonパッケージがあります。私はおそらく自分自身を冗談にしているだけですが、弾を噛んでそれを挽くようにしなければなりません。 – palewire

+0

静的環境では、アプリケーションを実行することはできません。しかし、あなたがかなり定期的に更新しない限り、 'wget'は物事をうまく処理します。更新すれば、動的サーバー(ローカルであると思います)にwgetしてファイルを更新する必要があります。 –

1

私はDjangoを使って同様の設定をしていますが、GAEではそうです。静的HTMLファイルを作成するために使用するビルドスクリプトを作成しました。 GAEのDjangoテンプレートのバージョンは若干異なるため、これにはいくつかのテストが必要な場合があります。

は、しかし、本質的に、あなたは

from django.template import Template, Context 
from django.template.loader import get_template 

t = get_template('template1.html') #Need to verify this. GAE template allows me to just call template.render(path, context). Not sure about pure Django templates 
c = Context({ 'variable' : 'value'}) 
with open("file1.html", "w") as f: 
    f.write(t.render(c)) #This works for me, but if this doesn't in pure Django, try render_to_string 

HTH

+0

チップをありがとう。そして、どのように展開しますか?データベースをループして上記のコードをすべてのエントリに対して実行し、結果をプッシュするコードを少し書いていますか? – palewire

+0

はい私のビルドスクリプトは、基本的にいくつかのファイルからコンテンツを取得し、テンプレートにマージして静的なHTMLを作成します。私は頻繁にコンテンツを変更しないので、自動的にプッシュするように設定していませんが、それはかなり簡単です。 – arunkumar

+0

さて、そのような「カスタム」ビルドスクリプトは、私がいつも終わらなければならないと思った場所のようなものですが、他の人のPOVには素晴らしいことです。そして、私がインターネットに尋ねるだけでは、邪悪なPythonマスターの中には、オートマジックの解決策が待っているかもしれないと私は考えています。 – palewire

2

私はあなたの意図を理解するような何かをしますが、まともなフレームワークで、これらの日は、動的なコンテンツの痛みを緩和するcaching mecanismのいくつかの並べ替えを提供しています。適切に実装されたキャッシュでは、静的と動的の違いは簡単です。私を信じて。

ハッピーコーディング、フレンド。

+2

ありがとうございます。私は、データベース駆動型アプリケーションのデプロイメントに関して、キャッシングは啓発のOnefold Pathであることに完全に同意します。私の現在のケースでは、実際には負荷よりもコストを考えています。フラットファイルを扱うほうが安いだけです。私はこれを試してみたいと思います。 – palewire

0

私は、既存のdjangoサイトを静的なhtmlサイトに変換するものに慣れていません。新しいdjango/python PaaSプロバイダスイートを検討する価値があるかもしれません。このようなサイトは、これらのプラットフォームの1つで実行するのが簡単でなければなりません。あなたがチェックアウトしたい場合があります

一部のプロバイダが含まれます:

+0

ヒントをありがとう。私は実際にPaaSサイトの代わりに静的ファイルを検討しています。私は主にGoogle App Engineを使用していますが、私は今後のスイッチよりもずっと高価な料金設定スケジュールに先立ってコストを削減しようとしています。 – palewire

2

新しいものは、それが存在しているもののちょうど、発表されているとで使用されてかなりの時間のその著者:

django-medusa

私はまだそれを試していないが、それは確かに良いように見える:私はなる!

関連する問題