1. 程式人生 > >孤荷凌寒自學python第五十二天初次嘗試使用python讀取Firebase資料庫中記錄

孤荷凌寒自學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/

 

喜馬拉雅語音筆記:

https://www.ximalaya.com/keji/19103006/148548318