0

今学期に Web アプリケーションのコースを受講し、Google アプリケーション エンジンを使用してコース プロジェクトを実装したいのですが、GAE でこのプロジェクトの要件を満たすことができるかどうか疑問に思っています。このコース プロジェクトは、ユーザー (学生) が宿題をサーバーにアップロードし、教師が宿題をオンラインで確認できる宿題提出システムです。

学生が宿題をアップロードすると仮定すると、いくつかの html と css が含まれます。私を混乱させたのは、オンライン機能をチェックする教師を実装する方法ですか? 例えば:

生徒 A は html ファイル hello.html をアップロードし、教師は http://xxx.xx/xx/xx/hello.html を使用してこの宿題を確認したいと考えています。

GAE はこの要件を満たすことができますか? 私が知る限り、GAE は app.yaml を使用してさまざまなファイルまたは html を指していますが、生徒が宿題をアップロードするときに app.yaml を変更することはできませんよね?

ここで行き詰まります。私を助けてください。ありがとうございました!

4

2 に答える 2

4

はい、GAE を使用してこのアプリケーションを作成できますが、ファイル システム上に直接存在するかのように、HTML ファイルをアップロードして提供するという考えから離れる必要があります。そんなことはできません。

比較的簡単にできることは、送信されたファイルをデータストア オブジェクトとして保存し、必要なファイル名をパラメータとして取得してデータストアから提供する URL を提供することです。

送信されたファイルを次のようなモデルに保存できます。

class HomeworkItem(db.Model):
    author = db.UserProperty()
    filename = db.StringProperty()
    content = db.TextProperty(multiline=True)
    submitted_on = db.DateProperty()

このcontentフィールドはTextProperty、HTML および CSS ファイルを扱うことを想定して として宣言されていますが、バイナリ データを扱う場合は、BlobProperty.

アセットのアップロードとダウンロードを処理するには、2 つの URL が必要です。次のように、Web フレームワークを使用するか、パラメータ化された URL を処理するコードを記述して、ファイル名などを URL 自体にエンコードできます。

http://homeworkapp.edu/review/hello.html

次に、/review/* URL を処理するメソッドがデータストアからデータを取得し、それを返信として送り返します。

于 2012-04-30T13:31:18.140 に答える
0

GAE は要件を満たしますが、各「hello.html」ファイルをブロブストアまたはデータストアに保存し、アップロードされたファイルを取得して提供するシステムを構築する必要があります。詳細については、このQ&A を参照してください

于 2012-04-30T13:29:31.287 に答える