這可能看起來像一個非常簡單和愚蠢的問題,但我找不到一個方便的答案。
我試圖使用谷歌的Django的反向geocodding API,作爲網站解釋(在https://developers.google.com/maps/documentation/geocoding/start?csw=1#ReverseGeocoding
)我應該發送到URL的請求:
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=<_api_key>
但我不能找到一個合適的方式來用django發送這個請求到google api。
對我來說,看起來很簡單的東西可以通過一些內置的django方法來實現,但我所能找到的只是要安裝的模塊。
如果沒有辦法,但安裝其中一個最好的其他python模塊?使用django發送http請求並獲得結果
0
A
回答
1
好了,最直接的辦法是安裝requests
庫,只需撥打:
result = requests.get(your_link)
你可以找到更多的信息(例如,如何進行身份驗證,使用cookies等,以及如何訪問數據庫)docs。 requests
庫編寫得非常好,非常直觀,使用簡單。相當多的聰明人和公司也使用它,所以它不是一個在週末剛剛被黑掉的半熟庫(截至目前,它在GitHub上有5269次提交和481個貢獻者)。
如果您絕對必須避免外部庫,爲什麼不嘗試urllib.request
。這有點複雜,如果你更喜歡更高級的界面,甚至文檔本身都推薦使用requests
。但你絕對可以用它完成工作。要開始,您可以閱讀docs關於如何使用它來獲取數據。請閱讀thread以獲取如何從urllib
獲得的響應中提取json的示例。
0
我想也許你不完全理解Django的工作過程。 Django是一個Python web服務器框架。基本上,你的Django項目是這樣的:
- Django項目在一個無限循環的服務器上運行,等待用戶發送HTTP請求
- 用戶發送HTTP請求到服務器的一些參數
- Django的捕獲請求,解析參數,並根據參數,叫你寫一些Python代碼。(你在
views.py
寫這需要request
作爲他們的第一個參數的函數) - Python代碼做你想讓它什麼做,並且最後將
HttpResponse
返回給用戶。
在步驟4中,您的代碼可以執行任何您想要的操作。您可以訪問數據庫,也可以向Google發送HTTP請求以使用其API。
記住:Django是服務器框架。它收到 HTTP請求,不發送 HTTP請求。所以沒有內置的Django方法來做到這一點。
您應該找到一個發送HTTP請求的庫,並且requests
是此作業的最佳選擇。
相關問題
- 1. 在JavaScript中發送HTTP請求以從MongoDB獲得結果
- 2. 發送HTTP請求並使用ZeroMQ獲得響應
- 3. asp.net發送get請求API並獲得JSON結果
- 4. PHP:發送請求並獲得響應
- 5. 使用電報機器人發送HTTP GET請求的結果
- 6. 向服務器發送HTTP POST請求並獲得響應?
- 7. 在http請求(Django)中發送page_size
- 8. 發送HTTP請求
- 9. 發送HTTP請求
- 10. 用swift發送http請求
- 11. 使用javascript發送HTTP請求並接收HTTP響應
- 12. 發送http發佈請求返回部分結果
- 13. 用Django發送SOAP請求
- 14. Http請求/併發?
- 15. 使用Wininet發送多個Http請求
- 16. 使用Guzzle發送HTTP請求
- 17. 發送一個HTTP請求,使用PHP
- 18. 使用XML發送HTTP請求
- 19. 發送HTTP POST請求使用PHP
- 20. 如何使用Telnet發送HTTP請求
- 21. 使用ExternalInterface發送HTTP請求
- 22. 使用JavaScript發送HTTP請求?
- 23. 線程使用Qt發送http請求
- 24. 發送HTTP請求(驗證請求)
- 25. 如何使用django發送POST請求?
- 26. 如何發送並行GET請求並等待結果響應?
- 27. 發送HTTP POST請求
- 28. JAVA發送POST http請求
- 29. Http請求發送到BW
- 30. 同步發送http請求
請嘗試http://docs.python-requests.org/en/master/ – chachan