В настоящее время у меня есть приложение django, которое хранит номера телефонов в базе данных postgres. Я ищу отправку смс (через twilio, или как там будет работать) на каждый из номеров в базе данных, так как они добавляются через веб-приложение django. Я использую pgadmin для мониторинга базы данных, и на данный момент все это размещено на моем локальном хосте. Нужно ли развертывать webapp и базу данных, чтобы twilio работал с postgres?
Кажется, я не могу найти чёткого объяснения тому, как я могу отправлять сообщения на номера, хранящиеся в виде записей в моей базе данных postgres, любая помощь будет потрясающей!
models.py
from django.db import models
import re
from django.core.exceptions import ValidationError
from django.core.validators import RegexValidator
# def phone_regex(val):
# reg = re.compile('^\+?1?\d{9,15}$')
# if not reg.match(val):
# raise ValidationError('Phone number must be entered in the format: +999999999. Up to 15 digits allowed.')
# Create your models here.
class Todo(models.Model):
phone_regex = RegexValidator(
regex= r'^\+?1?\d{9,15}$',
message= ("Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed."),
code='invalid_regex',
)
content = models.CharField(max_length=17, validators=[phone_regex], blank=False) # validators should be a list
# content = models.TextField()
views.py
from django.shortcuts import render, redirect
from django.http import HttpResponse, HttpRequest
from django.core.exceptions import ValidationError
# import pymsgbox
from .models import Todo
from .forms import Post
# Create your views here.
def list_todo_items(request):
context = {
'todo_list' : Todo.objects.all(),
'count': Todo.objects.count()
}
# count = Todo.objects.count()
# context2 = {'count': count}
# context = {'count': Todo.objects.count()}
# count = Todo.objects.count()
return render(request, 'index.html', context)
def insert_todo_item(request: HttpRequest):
todo = Todo(content=request.POST['content'])
try:
todo.full_clean()
except ValidationError:
# pymsgbox.alert('ValidationError! Phone number must be entered in the format: +999999999. Up to 15 digits allowed.', 'Title')
return redirect('/main/list/')
todo.save()
return redirect('/main/list/')
def delete_todo_item(request,todo_id):
todo_to_delete = Todo.objects.get(id=todo_id)
todo_to_delete.delete()
return redirect('/main/list/')
settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'MyDB',
'USER':'postgres',
'PASSWORD':'postgres',
# 'HOST':'XXXXXX.postgres.pythonanywhere-services.com',
# 'PORT': '11111'
'HOST': 'localhost'
}
}