吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

Python 程序通过 python-firebase 包可以存取 Firebase 数据库。
使用 python-firebase 包
首先必须安装 python-firebase 包,安装方法如下:

吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

 firebase 对象的方法
利用 firebase 对象方法可以对数据库进行操作,包括新增 、修改和删除数据。
fire base 提供了下列方法:

吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

 

 

 吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

 

 

 吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

from firebase import firebase

url = 'https://chiouapp01-74bde.firebaseio.com/'
fb = firebase.FirebaseApplication(url, None)
#fb.post('/test', "Python")
fb.post('/test', {"name":"David"})

吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

 

 

 我们也可以创建 diet 类型的数据:

吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

成功创建的数据会返回一个 diet 对象,并自动产生一个唯一编号,数据的查询、
编辑或删除都必须根据这个编号。我们可以从返回值的 name 键中取得这个编号。
from firebase import firebase

url = 'https://chiouapp01-74bde.firebaseio.com'
fb = firebase.FirebaseApplication(url, None)
dict1 = fb.post('/test', {"name":"David"})
print(dict1["name"])  # -KTMkuwiNbE18j9zpzko

吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

增数据前需要先检查数据是否己存在,这一点后面我们还会详细说明 。
现在,我们再做一些稍微复杂 的操作 : 在 s tud ents 节点一次创建三条数据,而且
每一条数据中都要包括 name 和 no 两个字段 。

from firebase import firebase

students = [{'no':1 ,'name':'李天龙'},{'no':2,'name':'高一人'},{'no':3,'name':'洪大同'}]

url = 'https://chiouapp01-74bde.firebaseio.com'
fb = firebase.FirebaseApplication(url, None)

for student in students:
    fb.post('/students', student)
    print("{} 存储完毕".format(student))  

吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

 

 

 吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

get 方法用 于读取指定 url 节点 的 数据 ,如果成功返回 diet 类型数据,第 2 个参
数设为 None ,会返回节点 的所有数据, 也可以设为一个 id 来返回指定 id 的数据。
例如 : 读取 students 节点 的数据 。 
import time  
from firebase import firebase

url = 'https://chiouapp01-74bde.firebaseio.com'
fb = firebase.FirebaseApplication(url, None)
students = fb.get('/students', None)
for key,value in students.items():
    print("id={}\tno={}\tname={}".format(key,value["no"],value["name"]))  
    time.sleep(1)

吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

 

 

 吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

 

 

 吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

首先,把所有数据读取到 data s 字典变量中 。

吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

 

 

 吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

然后我们再定义一个从 no 键中根据 no 的值来查询该数据 id 的 自定义函数,如
果数据存在则返回其 i d (也就是 Key );否则就返回空字符串 。

吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

利用 Ckeck:Key ()方法可以判断数据是否存在,并加以删除。 例如,若 no=l 的数据存在,就把它删除:

吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

 

 吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

执行程序后,我们可看到 2 号数据己被删除 。

吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

def CkeckKey(no):
    key_id=""
    if datas != None:
        for key in datas:
            if no==datas[key]["no"]: # 如果找到键名称,则......
                key_id = key
                break
    return key_id
        
### 主程序从这里开始 ###
        
from firebase import firebase

url = 'https://chiouapp01-74bde.firebaseio.com'
fb = firebase.FirebaseApplication(url, None)

while True:
    datas=fb.get('/students', None)
    no = input("请输入序号(Enter==>停止输入)")
    if no=="":
        break
    key_id = CkeckKey(int(no))   
    if key_id != "":    # 判断键是否存在
        print("确定要删除{}的数据?".format(datas[key_id]["name"]))
        yn=input("(Y/N)?")
        if (yn=="Y" or yn=="y"):
            fb.delete('/students/'+key_id,None)
            print("数据删除完毕\n")         
    else:
        print("{} 对应的数据不存在!\n".format(no))

吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

 

 吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

from firebase import firebase

url = 'https://chiouapp01-74bde.firebaseio.com'
fb = firebase.FirebaseApplication(url, None)
fb.put(url + '/test/', data={"name":"Lin"}, name="mykey")

吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

from firebase import firebase

url = 'https://chiouapp01-74bde.firebaseio.com'
fb = firebase.FirebaseApplication(url, None)
fb.put(url + '/test/', data={"name":"Mary"}, name="mykey") 

吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

 

 吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

 

 吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

 

 吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

def CkeckKey(no):
    key_id=""
    if datas != None:
        for key in datas:
            if no==datas[key]["no"]: # 如果找到键名,则......
                key_id = key
                break
    return key_id 

### 主程序从这里开始 ###
import time    
from firebase import firebase

url = 'https://chiouapp01-74bde.firebaseio.com'
fb = firebase.FirebaseApplication(url, None)
datas=fb.get('/students', None)

while True:
    no = input("请输入编号(Enter==>停止输入)")
    if no=="": break
    key_id = CkeckKey(int(no))   
    if key_id != "":      # 判断键是否存在
        print("原来姓名:{}".format(datas[key_id]["name"]))  
        name=input("请输入姓名:")
        data = {"no":int(no),"name":name} 
        datas[key_id]=data 
        fb.put(url + '/students/', data=data, name=key_id)       
        time.sleep(2)
        print("{} 已修改完毕\n".format(data))         
    else:
        print("{} 对应的数据不存在!\n".format(no))

吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

 

 吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

 

 

def CkeckKey(no):
    key_id=""
    if datas != None:
        for key in datas:
            if no==datas[key]["no"]: # 如果找到键名,则...
                key_id = key
                break
    return key_id 

### 主程序从这里开始 ###        
        
from firebase import firebase

students = [{'no':1 ,'name':'李天龙'},{'no':2,'name':'高一人'},{'no':3,'name':'洪大同'}]

url = 'https://chiouapp01-74bde.firebaseio.com'
fb = firebase.FirebaseApplication(url, None)

datas=fb.get('/students', None)

for student in students:
    no=student["no"] # 读取键名称  
    if CkeckKey(no) == "":      # 判断键是否存在
        fb.post('/students', student)
        print("{} 储存完毕".format(student))
上一篇:2021-01-19


下一篇:imx6q 修改开机LOGO指南