如何将Firebase与Django结合起来

492 阅读5分钟

将Firebase与Django集成

Firebase是一个由Google提供的后台数据存储平台,它提供了广泛的数据存储服务,以帮助无缝构建应用程序。它是一个在线的NoSQL数据库,它以类似JSON的格式存储数据。

为什么是Firebase?

Firebase可以实时管理数据,也可以用在不管理大量数据的应用中。使用Firebase的一些好处是。

  • 易于设置
  • 谷歌分析
  • 托管
  • 多平台认证

在本教程中,我们将通过建立一个简单的项目来研究如何在Django中使用Firebase实时数据库。

前提条件

要继续学习本教程,你将需要以下条件。

  • 在你的机器上安装[Python3]。
  • 对Django有一点了解

创建Firebase项目

要创建一个Firebase项目,我们需要到Firebase控制台。接下来,我们点击添加项目

Adding firebase project

我们被要求给我们的项目取一个名字

Project name

在输入项目名称后,我们点击继续按钮,这时会出现一个屏幕,询问我们是否要在项目中使用google analytics。我们的项目中不需要分析,你可以点击切换按钮或点击继续。

接下来,我们需要选择我们的账户,并点击create project 按钮。这需要几秒钟的时间来创建。

Project created

现在我们的项目已经创建,我们点击继续,这将使我们重定向到我们项目的仪表板。

在我们的仪表板上,我们有三个图标,ios、android和web。由于我们是在一个网络项目上工作,我们将点击网络图标。这将引导我们进入一个表格,要求我们命名我们的网络应用。键入一个名称,然后点击register app

App name

点击register app 按钮后,它会给我们一些代码。请把代码复制到某个地方;我们很快就会需要它。然后我们点击continue to console 按钮。

现在,我们被带回到仪表板。我们需要刷新页面来查看我们新创建的应用程序。

Refresh Dashboard

创建数据库

在我们的仪表板上,要创建一个数据库,我们点击Realtime DatabaseCreate Database

接下来,我们需要设置数据库。你可以使用默认的国家,点击next 。对于安全规则,我们将选择Start in Test Mode 选项。这是因为它仍然处于测试阶段。一旦应用程序准备投入生产,应该选择Start in Locked Mode

Database Setup

一旦我们完成了这些,我们会看到一个向数据库输入数据的页面。

Database

现在,让我们添加一些演示数据。首先,点击+ 图标。接下来,在Name 字段中,输入Data 。我们希望我们的数据以字典的形式出现,让value 字段空白。

接下来,点击值域旁边的+ 图标,添加另一个子项。填写NameData 字段。对另一个子项,点击Data 旁边的+ 图标。再添加一些数据,然后点击Add 按钮。我们应该有一个像这样的结果。

Data

现在,让我们把新创建的数据库整合到我们的Django应用程序中。

设置一个新的Django项目

让我们从设置一个新的虚拟环境开始。虚拟环境允许你在你的电脑上设置虚拟空间,允许你为一个项目分开安装必要的库或依赖性。

通过运行下面的命令,设置一个虚拟环境env

python -m venv env

在创建时,我们用下面的命令激活虚拟环境。

source env/bin/activate

我们用下面的命令安装Django。

pip install Django

接下来,我们使用以下命令建立一个新的Django项目,firebase

django-admin startproject firebase

然后,导航到firebase 目录并创建一个Django应用程序。

cd Django-charts
Django-admin startapp fireapp

让我们把我们的应用程序添加到已经安装的应用程序列表中。

导航到firebase 目录并编辑settings.py 文件。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'fireapp',
]

为了连接Firebase和Django,我们需要安装一个名为Firebase的python包。pyrebase.

pip install pyrebase

设置一个视图

我们将通过在我们的view.py 文件中添加以下内容来创建一个视图。

from django.shortcuts import render
import pyrebase

# Remember the code we copied from Firebase.
#This can be copied by clicking on the settings icon > project settings, then scroll down in your firebase dashboard
config={
    "apiKey": "AIzaSyAxOhg2XQiRpktrfDpPGWoqjgQD7alSmq0",
    "authDomain": "fireapp-c3e36.firebaseapp.com",
    "databaseURL": "https://fireapp-c3e36-default-rtdb.firebaseio.com",
    "projectId": "fireapp-c3e36",
    "storageBucket": "fireapp-c3e36.appspot.com",
    "messagingSenderId": "564960363824",
    "appId": "1:564960363824:web:ff9ee05d0330b7f75734f5",
    "measurementId": "G-NBBM679DH2"
}

#here we are doing firebase authentication
firebase=pyrebase.initialize_app(config)
authe = firebase.auth()
database=firebase.database()


def index(request):
        #accessing our firebase data and storing it in a variable
        name = database.child('Data').child('Name').get().val()
        stack = database.child('Data').child('Stack').get().val()
        framework = database.child('Data').child('Framework').get().val()
    
        context = {
            'name':name,
            'stack':stack,
            'framework':framework
        }
        return render(request, 'index.html', context)

设置模板

我们首先在我们的Fire app目录下创建一个模板目录。这个模板目录将放置我们的index.html 文件。

接下来,我们在index.html 文件中添加以下几行代码。

<h1>Firebase Database</h1>

<p>Hi, my name is {{name}} and i code {{stack}}.</p>
<p>My favourite framework is {{framework}}</p>

我们需要将DIRS 更新为我们settings.py 文件中的模板文件夹的路径。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

接下来,我们编辑我们的urls.py ,添加以下代码。

from Django.contrib import admin
from Django.URLs import path
from fire app import views

urlpatterns = [
    path('admin/', admin.site.urls),  
    path('', views.index, name='index'),
 
]

让我们用以下命令启动服务器来测试一下。

python manage.py runserver 

result

结论

总之,我们已经了解了Firebase和在Django应用程序中整合Firebase数据库。我们还学习了如何使用Realtime Database 。还有其他的Firebase服务你可以尝试一下,比如认证。