Dalam dunia aplikasi mudah alih yang pantas, memastikan pengguna sentiasa terlibat adalah satu cabaran. Hari ini, kami meneroka cara Django boleh membantu pembangun memerangi pengasingan pengguna dengan menyediakan pemberitahuan tolak untuk memastikan pengguna mendapat maklumat dan berhubung.
Menyediakan Pemberitahuan Tekan dalam Django
Pemberitahuan tolak adalah seperti peringatan mesra, membawa pengguna kembali ke apl anda dengan kemas kini atau makluman. Django boleh mengendalikan perkara ini dengan berkesan dengan beberapa langkah penting.
Langkah 1: Bina Model Pemberitahuan
Untuk bermula, Django memerlukan model pemberitahuan. Model ini akan menyimpan semua pemberitahuan yang dihantar oleh apl anda kepada pengguna.
from django.db import models from django.utils.translation import gettext_lazy as _ class Notification(models.Model): title = models.CharField(max_length=255, verbose_name=_('Notification title')) body = models.TextField(verbose_name=_('Notification body')) image = models.ImageField(upload_to='notifications/', null=True, blank=True) created_date = models.DateTimeField(auto_now_add=True) # Add this field def __str__(self): return self.title class Meta: ordering = ("-created_date",) # Now created_date exists verbose_name = _('Notification')
Langkah 2: Mencipta Fungsi Pemberitahuan Hantar
Seterusnya, kami akan menambah fungsi untuk menghantar pemberitahuan ini. Di sinilah kami menulis logik yang menghantar mesej apabila diperlukan, memastikan pengguna mendapat kemas kini masa nyata.
#notifcations.py import os from google.oauth2 import service_account from google.auth.transport.requests import Request import requests def refresh_access_token(service_account_file): credentials = service_account.Credentials.from_service_account_file( service_account_file, scopes=["https://www.googleapis.com/auth/cloud-platform"], ) credentials.refresh(Request()) access_token = credentials.token return access_token
Langkah 3: Menyediakan Isyarat
Django boleh menggunakan isyarat untuk mencetuskan pemberitahuan berdasarkan tindakan pengguna, seperti mesej baharu atau tugasan yang telah selesai.
from django.db.models.signals import post_save from django.dispatch import receiver import requests # Import the Notification model and the refresh_access_token function from my_app.models import Notification # Change 'my_app' to your actual app name from my_app.notifications import refresh_access_token # Update the path if necessary @receiver(post_save, sender=Notification) def send_notification_on_creation(instance, created, **kwargs): if created: service_account_file = '/home/rv/Documents/rv/push_notification/core/my_app/test-project.json' tkn = refresh_access_token(service_account_file) print('tkn',tkn) endpoint = "https://fcm.googleapis.com/v1/projects/test-project-595ae/messages:send" access_token = tkn headers = { "Authorization": f"Bearer {access_token}", "Content-Type": "application/json", } data = { "message": { "token":"dnTB_cv9TZ25jsOkkQSS0x:APA91bEghK69zhqpTi2B5hPFtX0mpLSzdSQswrGEKl60PrUQDgy9RTIc_f9pjfxoyuUU-w8xjwk0WO1KtvbwF3bYFlQ21HWv-JueS-Fu7azhUsjgULDN41TTTiqONsqLsbIqS9_xKsUv", "notification": { "title": instance.title, "body": instance.body, } } } response = requests.post(endpoint, json=data, headers=headers) if response.status_code == 200: print("Push notification successfully sent!") else: print(f"Failed to send push notification. Status code: {response.status_code}") print(response.text)
Langkah 4: Daftar dalam Admin
Akhir sekali, dengan mendaftarkan model pemberitahuan dalam panel pentadbir Django, kami boleh mengurus pemberitahuan dengan mudah, memastikan semuanya teratur dan bersedia.
from django.contrib import admin from .models import * admin.site.register(Notification)
Mengintegrasikan Firebase untuk Pemberitahuan Frontend
Untuk memastikan pemberitahuan sampai ke peranti pengguna, Django bekerjasama dengan Firebase.
Atas ialah kandungan terperinci Memenangi Pertempuran Menentang Pemisahan Pengguna dengan Pemberitahuan Tolak Django. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!