2012-09-26 30 views
1

我很抱歉,如果這個問題不夠具體,但我需要一些幫助理解這個概念。我一直在研究很多Javascript庫,包括JQuery,MooTools,Backbone,Underscore,Handlebars,Mustache等 - 還有Node.js和Meteor(我知道所有這些服務都有不同的用途)。我對每件事都有一個基本的概念,但我的問題主要集中在模板庫上。HTML模板如何適應後端語言和數據庫?

我認爲一般的想法是模板將由從服務器檢索到的JSON對象填充。然而,我對這個JSON對象的形成方式感到困惑,如果它可以通過另一種方式到後端來更新數據庫。如果這不正確,請糾正我。

更爲可靠的例子,假設我的Apache在Linux上運行,並且使用MongoDB作爲數據庫,並使用python作爲我的主要語言。所有這些組件如何與模板庫和對方進行交互?

例如,如果我有一個帶有表單的HTML文件,並且該操作將被設置爲一些python腳本;該腳本是否必須檢索這些字段,驗證它們,然後在數據庫中更新它們?如果是MySQL,我不得不編寫一條SQL語句來更新它,但是對於Mongo來說,它不是很容易,因爲它基於BSON/JSON?

對於另一個例子,假設我有一個view-account.html頁面,需要從數據庫中提取用戶信息,以何種形式將信息提取出來,以及如何將信息填充到模板?我猜我必須有一個Python腳本,從數據庫中提取信息,創建一個JSON對象,並使用它來填充html模板中的字段。

我知道有web框架將緩解這個過程,並請建議任何你會建議;不過,我真的很有興趣瞭解這些組件如何交互的概念。

謝謝!

回答

0

這顯然有很多方法可以一起工作,但聽起來你有(a)正確的想法。通常前端處理JSON,並且服務器提供JSON。什麼消費或提供這些迴應是無關緊要的;您不必擔心Mongo是您的數據庫,還是下劃線正在處理您的模板。

將您的前端和後端視爲兩個完全獨立的應用程序(這是非常正確的)。忽略你的前端代碼和模板可能來自處理後端的同一臺機器。您的後端處於持久化數據的業務中,您的前端負責顯示數據。

RE:使用JSON/BSON的Mongo;它使用與您的前端相同的語言進行交流的事實是一條紅鯡魚。無論如何,你的數據庫層應該將其抽象出來,所以你只需要使用Python dicts/tuples/etc來與數據庫進行交談。

我猜我必須有一個Python腳本,從數據庫中提取信息,創建一個JSON對象,並用它來填充html模板中的字段。

點上:)

+0

使sesne,謝謝! – zkokaja