Python一鍵上傳旅途照片生成展示網頁

作為一個比較喜歡出去見識世界、看看自然風光的人,這幾年有幸跑了一些地方,在祖國大地不同的地方見識了不同的人文風物,手機里也存了不少照片,想著如果以某種方式展現來回憶我的旅途的話,或許會給自己帶來不一樣的體驗。目標口號已經想好:去過的風景,直觀豐富地展示你的人生旅途,帶來新的回憶感受。在看到leaflet開源地圖庫時,覺得可以比較簡單地初步實現我的想法。

初步效果

效果圖1 - 60多張照片的效果圖,有部分照片的信息缺失

效果圖2 - 點擊顯示當時的照片

效果圖3 - 可以進一步加入文字描述內容與動態效果

思 路

  • 一般手機照片都包含豐富的信息,如拍攝時間等等,而python又有強大的PIL圖像處理庫,使得我們可以輕鬆解析照片信息。在服務端我們可以使用Django來負責產生簡單的上傳機制,將上傳的圖片放入靜態資源文件夾以提供路由,並且對照片進行解析,獲得的信息利用Django自帶的ORM編寫照片信息模型,存入默認的sqlite3資料庫,十分簡便,然後利用Django-restframework庫將照片信息生成api,方便前端非同步獲取。在前端利用leaflet地圖庫生成展示效果,為了以後的開發,採用了vuejs框架,利用vue-resource從api非同步get數據,並同步到頁面。

  • 這樣我們使用時便可以方便地一步上傳照片,在地圖上再現我們去過的風景,點擊出現當時的情景。當然直接根據照片只獲得了基本的時間和經緯度信息,進一步我們可以提供提交修改功能,讓用戶自己較為精細地修正地理位置(某些地理位置並不十分準確),並對照片做註解,提交回憶文本,然後一併展示。更進一步是利用時間數據,動態地顯示我們的旅途軌跡,以及自動生成整個人生旅途的動態展示效果。

  • leaflet文檔很詳細豐富,api文檔也很美觀,插件也不少。使用leaflet使用兩三句js語句就可以輕鬆地產生應用效果。不要對文檔望而生畏,我一開始也嫌煩,懶得看,後來靜下心一看發現很容易上手。在github上還有中文地圖圖層提供商的列表(不需要api key),我使用了高德地圖,個人比較喜歡。可用插件有Leaflet.EasyButton、Leaflet.markercluster。

項目GitHub地址:zr777/life-journey

-----------------------------------------

Python中文開發者的精神家園

作者:treelake Python中文社區專欄作者

博客地址:作者簡書

-----------------------------------------

微信公眾號:Python中文社區

會員登記:t.cn/RJMioxD

加入圈子:t.cn/RiNtrPI

申請成為專欄作者:t.cn/RJAasHg

申請成為主講人:t.cn/RMXAIwd

PyLive:t.cn/RJagBFp

社區維基:python-chinese.github.io

郵箱:pythonpost@163.com

-----------------------------------------

未經授權,禁止轉載,否則將追究法律責任。


推薦閱讀:

Python with MATLAB
【Python3網路爬蟲開發實戰】1.6.1-Flask的安裝
Python3 中代理使用方法總結
Python 參數傳引用還是傳值?
Python Generator漫談(續)

TAG:Python | 旅行 | 互聯網 |