![](/img/trans.png)
[英]how to call a get web service from javascript when the data returned by web changes?
[英]How to reference returned data in javascript from a web framework like bottle?
我想查詢我的數據庫,並將結果返回給javascript。
我使用瓶子提供的javascript文件
@app.route('/static/<filename:path>', name='static')
def send_static(filename):
return static_file(filename, root='static')
並且我不確定我是否正確執行此操作,但是我添加了另一條路由來指定應由哪個js文件獲取它。
@app.route('/static/js/app.js')
def ello():
cur.execute("SELECT * FROM places")
places= cur.fetchall()
return {'places':places}
然后在該app.js文件中,我希望能夠執行以下操作:
console.log(places);
但是我不確定如何逃避它。 我正在將mako用於html模板,效果很好,但是我嘗試過的javascript結果都在
Uncaught SyntaxError: Unexpected token {
如此處建議的那樣: https : //stackoverflow.com/a/14157401/1543640
在我看來,您正在嘗試通過Python 創建一個JavaScript文件。 聽起來這在兩個世界之間交換數據非常尷尬且不方便。
在前端(JavaScript)和后端(在您的情況下為Python應用程序)之間進行通信的一種常見做法是通過JSON (反過來就是 JavaScript)。 在最基本的層次上,您可以讓Python應用程序構造有效的JSON,並使其在特定路徑上可用,以供JavaScript使用。
一個例子是:
@app.route('/some/route/to/consume')
def fetch():
"""
Fetch all the fancy stuff from the database.
"""
db = Database()
# Fetch all records, convert them into JSON
result = json.dumps(db.get_stuff())
return result
此函數將從數據庫中獲取所有記錄(使用虛擬函數db.get_stuff()
),然后將結果轉換為有效JSON並返回。 重要的一點是Python json
模塊中的json_dumps()
函數。 它將有效的Python數據結構轉換為有效的JSON數據結構。
接下來,您應該編寫您的實際JavaScript文件以使用該JSON,並讓它做您想做的任何事情。 例如,這可以通過XHR調用(AJAX)完成。
如果將在您的路線上公開的數據不是公開的,請記住通用的安全做法,並保護該路線以免受到不必要的注意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.