簡體   English   中英

如何使用Python使網頁實時顯示動態數據?

[英]How to make a webpage display dynamic data in real time using Python?

我正在使用HTML和CSS(類似於使用網絡瀏覽器配置路由器的方式)為Python程序制作GUI前端。 該程序將用戶給定的值分配給變量,並使用這些變量執行計算,並輸出結果。 我有一些障礙要解決:

  1. 如何設計應用程序,以便不斷地實時更新數據? 也就是說,用戶無需點擊“計算”按鈕,也無需刷新頁面即可獲得結果。 如果用戶更改字段中的值,則其他所有字段都會同時更新,等等。

  2. 如何/從互聯網上的任意位置獲取變量的值,以及如何/在源頭更新變量時不斷對其進行更新? 該計划中的一些變量基於當前的市場狀況(例如,當前的黃金價格)。 我想讓某些值(假設我們沒有API)檢索這些值后,自動輸入這些值。

  3. 如何構建通過HTML和CSS顯示的應用程序? 考慮到Python無法像PHP一樣實現,我正在尋找一種方法來“消除HTML和Python之間的鴻溝”,而沒有像Django這樣的“繁重”框架,以便我可以在網頁的服務器端運行Python代碼。

我已經研究了很長一段時間,發現了各種各樣的解決方案,或者說幾乎是解決方案,但還不完全是。 我在為我的應用程序選擇所需的東西時遇到了麻煩。 這些是我最好的發現:

Werkzeug-我相信Werkzeug是將應用程序與HTML和Python集成在一起的最佳線索。 我只想放心,我正在理解它的正確性,實際上,這就是我要嘗試做的一種解決方案。

WebSockets-為了顯示來自任意網站的實時數據,我相信我可以使用此協議。 但是我不確定如何在實踐中實現這一目標。 也就是說,我不明白如何將值作為目標,然后將其連續發送到我的應用程序。 我相信這可以稱為刮刮嗎?

問題1.為此,您將需要javascript,而javascript用於向網站添加行為。 我建議為此使用一個名為Jquery的javascript框架。

您可以通過在輸入中添加一個html“ id”或“ class”來實現此目的,這些輸入具有您要從用戶那里接收的值,並在字段中顯示一個“ id”以顯示這些計算的結果。

您將創建一個javascript事件,該事件基本上可以跟蹤任何具有您用於上述輸入的類的html對象發生更改的時間,這種情況發生時,您可以進行計算,並將結果使用“ id”發布到您決定的結果字段中標識符。 查看此鏈接以獲取更多信息

問題2。為此,您必須執行所謂的“ Web抓取”:首先,閱讀要從中獲取信息的頁面的html源代碼,並查看要獲取信息的HTML對象的ID。 from(如果沒有ID,則必須查看其層次結構(也稱為文檔對象模型DOM),並查看其內部的對象),然后創建一個腳本來讀取HTML並查找該ID或遵循您發現的層次結構並讀取該HTML對象中的文本。 請記住,HTML只是文本。

我更習慣於Ruby編程語言,在ruby中為此下載了一個模塊,但是我敢肯定,對於Python,有一個名為“ Mechanize”的模塊。

問題3.您可以使用Flask ,這是用於python Python的輕巧簡單的微框架,從您描述的需求來看,聽起來很合適。

為了實現您的目標,您需要對javascript(動態網頁的語言)有充分的了解。 您應該熟悉動態Web技術,AJAX,DOM,JSON。 因此,主要部分在瀏覽器端。 實際上,任何python Web服務器都適合。 為了“縮小差距”,關鍵字是模板。 python有很多,因此您可以選擇最適合的一種。 諸如django之類的某些框架帶來了自己的模板引擎。 關於第二個問題:當一個網站不提供API時,該網站的所有者可能不希望他的數據被他人濫用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM