1. 程式人生 > >孤荷凌寒自學python第五十三天使用python寫入和修改Firebase資料庫中記錄

孤荷凌寒自學python第五十三天使用python寫入和修改Firebase資料庫中記錄

 孤荷凌寒自學python第五十三天使用python寫入和修改Firebase資料庫中記錄

 

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

 

今天繼續研究Firebase資料庫,利用google免費提供的這個資料庫服務,今天主要嘗試使用firebase_admin模組來對firebase資料庫進入記錄的寫入和修改。

獲得成功。

 

一、簡單總結下今天對firebase_admin模組物件的學習

(一)覆蓋和全新寫入一個指定的firebase資料庫中的文件的內容

Firebase資料庫中的一條記錄(firebase資料庫的記錄在Python中可以是一個字典物件以備寫入)

如果在寫入一條記錄的同時,新建一個文件(document);

或者將一個已存在的文件(document)中的記錄全部覆寫掉;

可以使用文件類的set方法。

具體用法如下:

集合物件.document(u'文件標識名').set(要寫入的記錄)

通過此方法,就可以完成資料記錄的寫入,如果指定標識名的文件已經存在,則會先刪除其中的記錄的所有內容,然後將新的內容寫入。

如果指定標識名的文件不存在,則會先新建這個文件,然後再寫入記錄。

 

(二)修改一個文件(document)的內容的方法:

修改一個文件的內容要使用文件物件的update方法

修改的概念在這兒是指:既是指原文件中有的同名的key(字典物件一樣的概念)的value會被 修改,而且也指原文件中沒有的Key,b也會被追加到文件中。

具體用法如下:

文件物件.update(新的記錄內容)

 

二、我的測試練習程式碼

```

# _** coding:utf-8 _*_# 孤荷凌寒自學Python第五十一天_連線firebase資料庫(nosql資料庫型別)第二天嘗試  import firebase_adminfrom firebase_admin import credentialsfrom 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'文件一 data: {}'.format(info.to_dict())) #轉變為字典物件後輸出jihesub=doc.collection(u'subone') #文件下存在的一個子集合   #此處證明,這種資料庫中的結構是可以像俄羅斯套娃一樣無限迴圈巢狀的。docsub=jihesub.document(u'subonedoc') #子集合中的子文件一infosub=docsub.get() #獲取子文件一中的內容print(u'子文件一 data: {}'.format(infosub.to_dict())) #轉變為字典物件後輸出 #-----新增文件的方法dictdata={    u'姓名':u'張四豐',    u'性別':u'女',    u'年齡':39,    u'愛好':    {        u'書法':u'10級',        u'計算機':u'8級',        u'英語':u'4級'    },    u'婚否':False}#新增一個文件,並寫入這些資料記錄jihesub.document(u'new201812').set(dictdata) #---將他讀出來docsub2=jihesub.document(u'new201812') #子集合中的子文件二infosub2=docsub2.get() #獲取子文件二的內容print(u'子文件二data: {}'.format(infosub2.to_dict())) #轉變為字典物件後輸出 #追加資料到subonedoc這個文件中 #docsub.update(dictdata) #重新讀出追加後的新文件的情況#infosub=docsub.get() #獲取子文件一中的內容#print(u'Document data: {}'.format(infosub.to_dict())) #轉變為字典物件後輸出 #修改子文件二 docsub2.update(dictdata)#重新讀infosub2=docsub2.get() #獲取子文件二的內容print(u'子文件二修改後data: {}'.format(infosub2.to_dict())) #轉變為字典物件後輸出``` 

 

今天算是已經基本上入門了firebase這種nosql資料庫的基本操作了。從今天起每天學習python的時間將進行適當壓縮,所以內容會比之前少很多,直到開始進入真正的實戰操作,完成一些有實際用途的小專案。

聽從網友【涅槃重生】的建議,確實到我這個年紀,馬上37歲了,還在拼命想靠打工來通過出賣時間來掙錢是個愚蠢的想法,於是我將在保證繼續終身學習的前提下,也樹立終身進行【財商知識】學習的意識,從此將不斷掌握和學習各種新時代的財富積累讓金錢為自己工作的一些財商知識,也歡迎大家與我一起自學交流。

 

——————————

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

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

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

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

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

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

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

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

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

 

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

 

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

 

連結:https://pan.baidu.com/s/1-iTZD5v-r0Uu6IZ6mboJPg

 

提取碼:p1yf

 

Bilibili:

https://www.bilibili.com/video/av39276577/

 

喜馬拉雅語音筆記

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