1. 程式人生 > >孤荷凌寒自學python第五十七天初次嘗試使用python來連線遠端MongoDb資料庫

孤荷凌寒自學python第五十七天初次嘗試使用python來連線遠端MongoDb資料庫

孤荷凌寒自學python第五十七天初次嘗試使用python來連線遠端MongoDb資料庫

 

(完整學習過程螢幕記錄視訊地址在文末)

 

今天是學習mongoDB資料庫的第三天。感覺這個東西學習起來還是那麼困難,今天是第一次嘗試使用Python程式碼來連線遠端資料庫,然而今天並沒有成功。

 

一、首先下載安裝Python需要的第三方庫:

pip install pymongo

 

在windows的命令列視窗中輸入以上命令即可。

 

二、然後通過引用此模組,就可以進行連線

我今天的測試如下(沒有成功)

```

from pymongo import MongoClient

 

import _mty

import _mf

import _mre

import _cl

 

def msgbox(info,titletext='孤荷凌寒的對話方塊QQ578652607',style=0,isShowErrMsg=False):

    return _mty.msgboxGhlh(info,titletext,style,isShowErrMsg)

 

def firstConnect():

    #--指明資料庫伺服器的地址與埠號:

    strhost='cluster0-zr7xj.mongodb.net'

    intport=27017

    #--建立連線

    client=MongoClient(strhost)

    #--獲取連線中的資料庫(通過資料庫的名稱空間獲取)

    db=client['admin']

    #-- 準備當前名稱空間對應的資料庫的許可權使用者名稱和對應授權密碼

    stru=_mf.readAllTextFromTxtFileGhlh('u.txt')

    strp=_mf.readAllTextFromTxtFileGhlh('p.txt')

    db2=client['ghlhfirst']

    #--登入資料庫

    db2.authenticate(stru,strp)

    #--獲取其中的一個集合物件

    jh=db2['ghlhone']

    #--獲取其中的文件

    #--獲取全部文件

    docall=jh.find()

    msgbox(str(docall))

 

firstConnect()

 

```

執行報錯:

Traceback (most recent call last):

  File "i:\MAKEAPP\python\Python365\邊學習邊測試資料夾\自學PYTHON部分\0057第五十七天訪問mongodb資料庫3\trymongodbfirst.py", line 34, in <module>

    firstConnect()

  File "i:\MAKEAPP\python\Python365\邊學習邊測試資料夾\自學PYTHON部分\0057第五十七天訪問mongodb資料庫3\trymongodbfirst.py", line 26, in firstConnect

    db2.authenticate(stru,strp,mechanism='MONGODB-CR')

  File "G:\w10_1\python\python365\lib\site-packages\pymongo\database.py", line 1274, in authenticate

    connect=True)

  File "G:\w10_1\python\python365\lib\site-packages\pymongo\mongo_client.py", line 609, in _cache_credentials

    writable_preferred_server_selector)

  File "G:\w10_1\python\python365\lib\site-packages\pymongo\topology.py", line 224, in select_server

    address))

  File "G:\w10_1\python\python365\lib\site-packages\pymongo\topology.py", line 183, in select_servers

    selector, server_timeout, address)

  File "G:\w10_1\python\python365\lib\site-packages\pymongo\topology.py", line 199, in _select_servers_loop

    self._error_message(selector))

pymongo.errors.ServerSelectionTimeoutError: cluster0-zr7xj.mongodb.net:27017: [Errno 11001] getaddrinfo failed

PS I:\MAKEAPP\python\Python365\邊學習邊測試資料夾\自學PYTHON部分\0057第五十七天訪問mongodb資料庫3> cd 'i:\MAKEAPP\python\Python365\邊學習邊測試資料夾\自學PYTHON部分\0057第五十七天訪問mongodb資料庫3'; ${env:PYTHONIOENCODING}='UTF-8'; ${env:PYTHONUNBUFFERED}='1'; & 'G:\w10_1\python\python365\python.exe' 'c:\Users\pw\.vscode\extensions\ms-python.python-2018.7.1\pythonFiles\PythonTools\visualstudio_py_launcher.py' 'i:\MAKEAPP\python\Python365\邊學習邊測試資料夾\自學PYTHON部分\0057第五十七天訪問mongodb資料庫3' '56500' '34806ad9-833a-4524-8cd6-18ca4aa74f14' 'RedirectOutput,RedirectOutput' 'i:\MAKEAPP\python\Python365\邊學習邊測試資料夾\自學PYTHON部分\0057第五十七天

訪問mongodb資料庫3\trymongodbfirst.py'

Traceback (most recent call last):

  File "i:\MAKEAPP\python\Python365\邊學習邊測試資料夾\自學PYTHON部分\0057第五十七天訪問mongodb資料庫3\trymongodbfirst.py", line 34, in <module>

    firstConnect()

  File "i:\MAKEAPP\python\Python365\邊學習邊測試資料夾\自學PYTHON部分\0057第五十七天訪問mongodb資料庫3\trymongodbfirst.py", line 26, in firstConnect

    db2.authenticate(stru,strp)

  File "G:\w10_1\python\python365\lib\site-packages\pymongo\database.py", line 1274, in authenticate

    connect=True)

  File "G:\w10_1\python\python365\lib\site-packages\pymongo\mongo_client.py", line 609, in _cache_credentials

    writable_preferred_server_selector)

  File "G:\w10_1\python\python365\lib\site-packages\pymongo\topology.py", line 224, in select_server

    address))

  File "G:\w10_1\python\python365\lib\site-packages\pymongo\topology.py", line 183, in select_servers

    selector, server_timeout, address)

  File "G:\w10_1\python\python365\lib\site-packages\pymongo\topology.py", line 199, in _select_servers_loop

    self._error_message(selector))

pymongo.errors.ServerSelectionTimeoutError: cluster0-zr7xj.mongodb.net:27017: [Errno 11001] getaddrinfo failed

經過近一個小時反覆搜尋查詢資料,還是沒有成功,而同樣的情況下,通過compass客戶端卻能夠連線上。

因為學習時間有限,今天的學習只能擱到這兒,還懇請高手能夠指點迷津,萬分感激。

 

——————————

今天整理的學習筆記完成,最後例行說明下我的自學思路:

根據過去多年我自學各種程式語言的經歷,認為只有真正體驗式,解決實際問題式的學習才會有真正的效果,即讓學習實際發生。在2004年的時候我開始在一個鄉村小學自學電腦 並學習vb6程式語言,沒有學習同伴,也沒有高師在上,甚至電腦都是孤島(鄉村那時還沒有網路),有的只是一本舊書,在痛苦的自學摸索中,我找到適應自己零基礎的學習方法:首先是每讀書的一小節就作相應的手寫筆記,第二步就是上機測試每一個筆記內容是否實現,其中會發現書中講的其實有出入或錯誤,第三步就是在上機測試之後,將筆記改為電子版,形成最終的修訂好的正確無誤的學習筆記 。

通過反覆嘗試錯誤,在那個沒有分享與交流的黑暗時期我摸黑學會了VB6,爾後接觸了其它語言,也曾聽過付費視訊課程,結果發現也許自己學歷果然太低,就算是零基礎的入門課程,其實也難以跟上進度,講師的教學多數出現對初學者的實際情況並不瞭解的情況,況且學習者的個體也存在差異呢?當然更可怕的是收費課程的價格往往是自己難以承受的。

於是我的所有程式設計學習都改為了自學,繼續自己的三步學習筆記法的學習之路。

當然自學的最大問題是會走那麼多的彎路,沒有導師直接輸入式的教學來得直接,好在網路給我們帶來無限搜尋的機會,大家在網路上的學習日誌帶給我們共享交流的機會,而QQ群等交流平臺、網路社群的成立,我們可以一起自學,互相批評交流,也可以獲得更有效,更自主的自學成果。

於是我以人生已過半的年齡,決定繼續我的程式設計自學之路,開始學習python,只希望與大家共同交流,一個人的獨行是可怕的,只有一群人的共同前進才是有希望的。

誠摯期待您的交流分享批評指點!歡迎聯絡我加入從零開始的自學聯盟。

這個時代網際網路成為了一種基礎設施的存在,於是本來在孤獨學習之路上的我們變得不再孤獨,因為網路就是一個新的客廳,我們時刻都可以進行沙龍活動。

非常樂意能與大家一起交流自己自學心得和發現,更希望大家能夠對我學習過程中的錯誤給予指點——是的,這樣我就能有許多免費的高師了——這也是分享時代,社群時代帶來的好福利,我相信大家會的,是吧!

 

根據完全共享的精神,開源互助的理念,我的個人自學錄製過程是全部按4K高清視訊錄製的,從手寫筆記到驗證手寫筆記的上機操作過程全程錄製,但因為4K高清檔案太大均超過5G以上,所以無法上傳至網路,如有需要可聯絡我QQ578652607對傳,樂意分享。上傳分享到百度網盤的只是壓縮後的720P的視訊。

 

我的學習過程錄影百度盤地址分享如下:(清晰度:1280x720)

 

連結:https://pan.baidu.com/s/1DSXmIRCkyW05R9viASFWYw

提取碼:e1we