Afo*_*umi 12 django firebase firebase-realtime-database
我正在尝试使用我的Django Web应用程序实现Firebase实时数据库.在使用Firebase正确设置配置后,我对数据如何从我的Django网站写入我的Firebase数据库而不是使用Sqlite或Postgres感到困惑.
在settings.py,我需要将引擎设置为Firebase吗?我在这里完全糊涂了.我不想使用正常的ORM,如Sqlite,Postgres等.我希望我的应用程序使用Firebase.
我还需要了解Firebase的其他内容吗?
settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
Run Code Online (Sandbox Code Playgroud)
pyrebase_settings文件
import pyrebase
config = {
    "apiKey": "my_api_key_is_here",
    "authDomain": "my_auth_domain_is_here",
    "databaseURL": "my_firebase_database_url_is_here",
    "projectId": "my_firebase_project_id_is_here",
    "storageBucket": "my_firebase_storageBucket_is_here",
    "serviceAccount": "my_serviceAccount.json_file_path_is_here",
    "messagingSenderId": "messagingSenderId_is_here"
}
# initialize app with config
firebase = pyrebase.initialize_app(config)
# authenticate a user
auth = firebase.auth()
user = auth.sign_in_with_email_and_password("email@usedforauthentication.com", "FstrongPasswordHere")
db = firebase.database()
Run Code Online (Sandbox Code Playgroud)
    ife*_*aju 10
看一下doc 的数据库部分.它详细说明了如何与数据库API进行交互.通常,您将在视图中使用这些,您需要从数据库中保存或检索某些内容.
例如,假设你想要一个能够获得用户的视图,你可以拥有这样的东西:
#views.py
from pyrebase_settings import db, auth
from django.shortcuts import render
def get_users(request):
    users = db.child("users").get()
    return render(request, 'users.html', {'users': users.val()})
Run Code Online (Sandbox Code Playgroud)
可以在此处查看用于检索数据的文档
还说你想要一个保存(注册)用户的视图,你可以这样:
#views.py
from pyrebase_settings import db, auth
def signup(request):
   form = SignupForm(request.POST)
   if form.is_valid():
       email = form.cleaned_data('email')
       password = form.cleaned_data('password')
       auth.create_user_with_email_and_password(email, password)
   # the rest of your code goes here
Run Code Online (Sandbox Code Playgroud)
这个create_user_with_email_and_password方法记录在这里
PS.我从未使用pyrebase库,因此我只根据其文档中指定的内容编写.另外我只是写下这些django片段,如果有任何语法错误或错别字,请原谅我:)
希望这可以帮助 :)
我还需要了解有关 Firebase 的其他信息吗?
不,您需要了解有关 Django 的一些内容——它旨在使用关系数据库引擎作为其主要数据存储。Firebase 不是关系型的。
很抱歉成为坏消息的承载者。
关于这个问题的许多答案都忽略了这一点,并建议让您从 Python 访问 Firebase 的代码或库。当然,这是可能的。但这并不能使它成为 Django 的主要数据存储。Django 的 ORM 功能和 contrib 应用程序都假定一个关系数据库。
为了使其工作,您需要类似于支持 Firebase的django-nonrel 之类的东西。据我所知,不存在。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           19809 次  |  
        
|   最近记录:  |