孤荷凌寒自學python第五十二天初次嘗試使用python讀取Firebase資料庫中記錄
孤荷凌寒自學python第五十二天初次嘗試使用python讀取Firebase資料庫中記錄
(完整學習過程螢幕記錄視訊地址在文末)
今天繼續研究Firebase資料庫,利用google免費提供的這個資料庫服務,今天主要嘗試使用firebase_admin模組來連線firebase資料庫。
獲得成功。
一、簡單總結下今天對firebase_admin模組物件的學習
(一)要通過firebase_admin模組連線到firebase資料庫,那麼必須要擁有一個從firebase網站上自己的資料庫的【使用者和許可權】處設定的‘連線私鑰’等相關資訊的一個json檔案,並下載到專案資料夾中來。
(二)然後通過:
firebase_admin.credentials.Certificate
方法來讀取這個下載到本地的json檔案
示例如下:
cred = credentials.Certificate("ghlhfirst.json")
firebase_admin.initialize_app(cred)
initialize_app方法用於初始化這個加密連線(我的理解,具體這兒機制還沒有深入研究,歡迎大家一起討論)
(三)通過firebase_admin.firestore物件來真正建立與資料庫的連線
使用此物件的如下方法:
db=firestore.client() #建立連線
得到的db物件就是一個對firebase資料庫的連線。
其結構如下:
db #---資料庫連線物件
collection #--在資料庫中的多個集合,通過collection(集合名稱)獲取指定的集合。
document #--在一個集合中的多個文件 ,通過document(文件名稱)來獲取指定的文件
文件內容 #--以字典形式key:value模式儲存的資料,通過cocument物件的get()方法 獲取出文檔 內容 。
文件中的collection #--在文件中的下級的子的多個集合,通過collection(集合名稱)獲取指定的集合。
……
從此結構中可以看出,這種資料庫的結構是可以多層級巢狀,無限巢狀下去的。非常的神奇!
(四)官方文件地址:
https://firebase.google.com/docs/guides/
二、然後嘗試用Python來讀出我的資料庫中的測試資料
程式碼如下:
我下載下來的‘連線私鑰’等相關資訊的一個json檔案就存放在當前測試檔案 的同級資料夾下:
檔名為:【ghlhfirst.json】
測試程式碼為:
# _** coding:utf-8 _*_
# 孤荷凌寒自學Python第五十一天_連線firebase資料庫(nosql資料庫型別)第二天嘗試
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
cred = credentials.Certificate("ghlhfirst.json")
firebase_admin.initialize_app(cred)
db=firestore.client() #建立連線
jiheinfo=db.collection(u'ghlh') #得到集合
doc=jiheinfo.document(u'yiLfGDecALwWYw9VSoIm') #得到文件物件
info=doc.get() #獲取文件內容
print(u'Document data: {}'.format(info.to_dict())) #轉變為字典物件後輸出
jihesub=doc.collection(u'subone') #文件下存在的一個子集合 #此處證明,這種資料庫中的結構是可以像俄羅斯套娃一樣無限迴圈巢狀的。
docsub=jihesub.document(u'subonedoc') #子集合中的子文件一
infosub=docsub.get() #獲取子文件一中的內容
print(u'Document data: {}'.format(infosub.to_dict())) #轉變為字典物件後輸出
測試結果為:
Document data: {'nm': '張三', 'sex': '男', 'id': 0, 'ispass': 'False'}
Document data: {'nm': '孤荷凌寒', 'age': 36}
今天算是已經基本上入門了firebase這種nosql資料庫的基本操作了。從今天起每天學習python的時間將進行適當壓縮,所以內容會比之前少很多,直到開始進入真正的實戰操作,完成一些有實際用途的小專案。
——————————
今天整理的學習筆記完成,最後例行說明下我的自學思路:
根據過去多年我自學各種程式語言的經歷,認為只有真正體驗式,解決實際問題式的學習才會有真正的效果,即讓學習實際發生。在2004年的時候我開始在一個鄉村小學自學電腦 並學習vb6程式語言,沒有學習同伴,也沒有高師在上,甚至電腦都是孤島(鄉村那時還沒有網路),有的只是一本舊書,在痛苦的自學摸索中,我找到適應自己零基礎的學習方法:首先是每讀書的一小節就作相應的手寫筆記,第二步就是上機測試每一個筆記內容是否實現,其中會發現書中講的其實有出入或錯誤,第三步就是在上機測試之後,將筆記改為電子版,形成最終的修訂好的正確無誤的學習筆記 。
通過反覆嘗試錯誤,在那個沒有分享與交流的黑暗時期我摸黑學會了VB6,爾後接觸了其它語言,也曾聽過付費視訊課程,結果發現也許自己學歷果然太低,就算是零基礎的入門課程,其實也難以跟上進度,講師的教學多數出現對初學者的實際情況並不瞭解的情況,況且學習者的個體也存在差異呢?當然更可怕的是收費課程的價格往往是自己難以承受的。
於是我的所有程式設計學習都改為了自學,繼續自己的三步學習筆記法的學習之路。
當然自學的最大問題是會走那麼多的彎路,沒有導師直接輸入式的教學來得直接,好在網路給我們帶來無限搜尋的機會,大家在網路上的學習日誌帶給我們共享交流的機會,而QQ群等交流平臺、網路社群的成立,我們可以一起自學,互相批評交流,也可以獲得更有效,更自主的自學成果。
於是我以人生已過半的年齡,決定繼續我的程式設計自學之路,開始學習python,只希望與大家共同交流,一個人的獨行是可怕的,只有一群人的共同前進才是有希望的。
誠摯期待您的交流分享批評指點!歡迎聯絡我加入從零開始的自學聯盟。
這個時代網際網路成為了一種基礎設施的存在,於是本來在孤獨學習之路上的我們變得不再孤獨,因為網路就是一個新的客廳,我們時刻都可以進行沙龍活動。
非常樂意能與大家一起交流自己自學心得和發現,更希望大家能夠對我學習過程中的錯誤給予指點——是的,這樣我就能有許多免費的高師了——這也是分享時代,社群時代帶來的好福利,我相信大家會的,是吧!
根據完全共享的精神,開源互助的理念,我的個人自學錄製過程是全部按4K高清視訊錄製的,從手寫筆記到驗證手寫筆記的上機操作過程全程錄製,但因為4K高清檔案太大均超過5G以上,所以無法上傳至網路,如有需要可聯絡我QQ578652607對傳,樂意分享。上傳分享到百度網盤的只是壓縮後的720P的視訊。
我的學習過程錄影百度盤地址分享如下:(清晰度:1280x720)
連結:https://pan.baidu.com/s/1PfJypsYVLkI_-U8wyjq0gw
提取碼:v9uv
Bilibili:
https://www.bilibili.com/video/av39162485/
喜馬拉雅語音筆記: