django应用程序使用amazon sns向ios和android设备发送推送通知。
django-sloop的Python项目详细描述
django sloop是迄今为止最快、最可靠的restful推送通知服务。这个包包含一些工具,可以简化在django项目中实现sloop。
Django单桅帆船
安装
通过github或pip安装软件包(pip install django sloop)
将django_sloop添加到设置文件中的已安装应用程序列表。
扩展django_sloop.models.abstractsnsdevice类并创建自己的push token设备模型。
# models.pyfromdjango_sloop.modelsimportAbstractSNSDeviceclassDevice(AbstractSNSDevice):pass# (Optional) if you need to override Meta.classMeta(AbstractSNSDevice.Meta):pass
- 确保您在设置文件中填写了必要的信息:
# settings.pyDJANGO_SLOOP_SETTINGS={"AWS_REGION_NAME":"","AWS_ACCESS_KEY_ID":"","AWS_SECRET_ACCESS_KEY":"","SNS_IOS_APPLICATION_ARN":"test_ios_arn","SNS_IOS_SANDBOX_ENABLED":False,"SNS_ANDROID_APPLICATION_ARN":"test_android_arn","DEFAULT_SOUND":"","DEVICE_MODEL":"module_name.Device",}
在项目的生命周期内(即,一旦您创建并迁移了依赖于它的模型),如果不认真努力,就无法更改设备的模型设置。它所引用的模型必须在 它所在的应用程序。
- 为新创建的设备模型创建迁移并迁移。
注意:django_sloop的迁移必须在创建设备后运行。如果在运行迁移时遇到问题,请在创建设备的迁移文件中添加以下内容。
run_before = [
('django_sloop', '0001_initial'),
]
- 将DjangoSys.Multh.Studio NotoFixIsCurnMin添加到用户模型中。
classUser(PushNotificationMixin,...):passuser.send_push_notification_async(message="Sample push notification.")
- 将DjangoSysLoop.admin .sLoadAdmin混入到您的UpDestmin中,以便能够从Django管理面板向用户发送推送消息。
# admin.pyfromdjango_sloop.adminimportSloopAdminMixinfromdjango.contribimportadminclassUserAdmin(SloopAdminMixin,admin.ModelAdmin):actions=("send_push_notification",)
- 添加django rest framework url以创建和删除设备。
# urls.pyfromdjango.conf.urlsimporturlfromdjango.urlsimportincludeurlpatterns=[# ...url(r'^api/devices/',include('django_sloop.urls')),# ...]
完成!