1

基本的に次のような単純な Web アプリケーションをプログラミングするにはどうすればよいでしょうか (実際にはそうではありませんが、次の部分を正しく理解すれば、そこから自分の道を見つけることができます)。

  1. ユーザーがログインします (つまり、何らかの認証が必要です)。
  2. ユーザーが番号を入力します。
  3. X 秒ごとに、サーバーは、直前の X 秒間に入力されたすべての数値の平均を計算します。
  4. ユーザーに平均を表示します。
  5. 数値が平均に最も近い (一意の) ユーザーは、スコア アカウントで +1 を取得します。

サーバー側のスクリプトには、Python を使用したいと考えています。データベース アクセスには、SQLAlchemy を使用します。サーバーはApacheです。次のフィールドを使用してデータベースをセットアップしたとします: ユーザー名、パスワード (ハッシュ)、スコア。(2)、(4)、(5)のやり方を知っています。(4) については、おそらく XMLHttpRequest を使用しますが、これが最善の解決策であるかどうかはわかりません。いずれにせよ、私の最終的なアプリケーションには JavaScript が必要なので、XMLHttpRequest は問題ないはずです。

@(1) Python の「Cookie」モジュールを使用して解決策を見つけることができると思いますが、それが正しいアプローチであるかどうかはわかりません。では、セッション管理への簡単で安全なアプローチは何でしょうか?

@(3) これは私が苦労している主なものです。「ソケット」モジュールを調べましたが、これがタスクに適しているかどうかわかりません。明らかに、次のようなループが必要です

  1. X 秒間リッスンし、すべての数値を収集します
  2. 平均を計算し、最も近いユーザーを特定します
  3. ユーザー アカウントの更新

私が気にしないことの 1 つは、古いブラウザーまたは IE への準拠です。

調べるべきことをいくつかお勧めしたり、コードを提供したりできますか?

4

1 に答える 1

1

まず、Python を apache に接続する必要があります。そのためには、mod_wsgiをお勧めします。

次に、ステップ 1 に進みます。独自の Web フォームを作成し、ユーザーにパスワードを照会し、セッションを記憶するために Cookie を設定します (アクティブなセッションをデータベースに保存するか、暗号化トリックを使用して Cookie に保持することができます)。 .

他の機能に関しては、Python バックエンドとフロントエンドの間の優れた通信が必要です。アプリケーションからの XML を解析できるフロントエンドのjQueryをお勧めします。本当に単純な場合は、文字列を出力して webapp にそれを取り出す。

最終的な実装に入る前に、AJAX チュートリアルを実行することをお勧めします。これは、基本を十分にカバーしているように見えます。Apache のセットアップに煩わされることなく、ビルトイン サーバーをデバッグに使用できます。

または、フレームワーク (非常に軽量なBottleなど) を使用すると、時間を大幅に節約できます。

さらに、あなたが苦労していることに関して-データは訪問ごとに計算できるため、デーモンチェックは実際には必要ありません-提出物をタイムスタンプで保存してください。また、最後の X 秒間に提出がない場合はどうなるか、あなたは言いませんでした。正解は 0 ですか?

最後に、これは非常に「動的な」アプリのようです。競合状態がないことをどのように保証しますか? トラフィックの多い環境では、特別な予防措置を取らなければ、信頼できる結果を得ることが難しい場合があります。

于 2012-06-27T14:20:34.170 に答える