1

この質問が十分に具体的でない場合はお詫び申し上げますが、この概念を理解するための助けが必要です。私は、JQuery、MooTools、Backbone、Underscore、Handlebars、Mustacheなどを含む多くのJavascriptライブラリを研究してきました。また、Node.jsとMeteorも研究しています(これらはすべて異なる目的を果たします)。私はそれぞれが何をするかについての基本的な考えを持っていますが、私の質問は主にテンプレートライブラリに焦点を当てています。

一般的な考え方は、テンプレートはサーバーから取得したJSONオブジェクトで埋められるというものだと思います。ただし、そのJSONオブジェクトがどのように形成されるか、およびデータベースを更新するためにバックエンドに逆方向に進むことができるかどうかについて、私は混乱しています。これが正しくない場合は訂正してください。

より確実な例として、LinuxでApacheを実行していて、データベースとしてMongoDBを使用し、第一言語としてpythonを使用しているとします。これらすべてのコンポーネントは、テンプレートライブラリおよび相互にどのように相互作用しますか?

たとえば、フォームを含むHTMLファイルがあり、アクションがPythonスクリプトに設定されている場合。そのスクリプトは、フィールドを取得して検証してから、DBで更新する必要がありますか?MySQLの場合、それを更新するためにSQLステートメントを作成する必要がありますが、Mongoでは、BSON / JSONベースであるため、これとは異なり、簡単ではないでしょうか。

また、他の例では、DBからユーザー情報を取得する必要があるview-account.htmlページがあるとします。どのような形式で情報を取得し、テンプレートにどのように入力しますか?DBから情報を取得し、JSONオブジェクトを作成し、それを使用してhtmlテンプレートのフィールドにデータを入力するPythonスクリプトが必要になると思います。

このプロセスを容易にするWebフレームワークがあることを認識しています。推奨するものがあれば、提案してください。ただし、これらのコンポーネントがどのように相互作用するかという概念を理解することに本当に興味があります。

ありがとう!!

4

1 に答える 1

0

これがすべて一緒に機能する方法は明らかにたくさんありますが、(a)正しい考えを持っているように思えます。通常、フロントエンドはJSONを処理し、サーバーはJSONを提供します。それらの応答を消費または提供するものは無関係です。Mongoがデータベースであることや、アンダースコアがテンプレートを処理していることを心配する必要はありません。

フロントエンドとバックエンドを2つの完全に別個のアプリケーションと考えてください(これはほとんど真実です)。フロントエンドのコードとテンプレートは、おそらくバックエンドを処理しているのと同じマシンから配信されるという事実を無視してください。バックエンドはデータを永続化するビジネスであり、フロントエンドはデータを表示するビジネスです。

RE:JSON/BSONを使用するMongo。フロントエンドと同じ言語を使用して通信するという事実は、赤いニシンです。とにかくDBレイヤーはこれを抽象化する必要があるため、Python dicts / tuples/etcを使用してデータベースと通信しているだけです。

DBから情報を取得し、JSONオブジェクトを作成し、それを使用してhtmlテンプレートのフィールドにデータを入力するPythonスクリプトが必要になると思います。

スポット:)

于 2012-09-26T03:09:20.647 に答える