En esta guía, lo guiaré en la creación de un sistema seguro de comentarios anónimos utilizando Django, Twilio para notificaciones por SMS, Pinata para cargas seguras de medios y TailwindCSS para un estilo responsivo. Al final de este tutorial, tendrá un sistema de comentarios completamente funcional donde los usuarios pueden enviar comentarios,, opcionalmente, cargar medios y recibir notificaciones por SMS, todo teniendo en cuenta la seguridad y la privacidad.
Demostración: Enlace en vivo
1.1. Crear y configurar un entorno virtual
Comience configurando el entorno de su proyecto. Asegúrese de tener Python instalado y configurar un entorno virtual:
python3 -m venv venv source venv/bin/activate
En Windows:
venv\Scripts\activate
Instalar los paquetes necesarios:
pip install django twilio python-decouple requests gunicorn
1.2. Iniciar un proyecto Django
Inicialice un nuevo proyecto y aplicación Django:
django-admin startproject config . python manage.py startapp feedback
2.1. Crear un modelo de comentarios
Defina un modelo para almacenar los envíos de comentarios en feedback/models.py:
from django.db import models class Feedback(models.Model): message = models.TextField() sender_email = models.EmailField() sender_phone = models.CharField(max_length=15) media_url = models.URLField(null=True, blank=True) created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return f"Feedback from {self.sender_email}"
Este modelo captura comentarios, correos electrónicos, números de teléfono y URL de medios opcionales.
2.2. Crear vistas para gestionar comentarios y notificaciones por SMS
En feedback/views.py, cree vistas para procesar comentarios y enviar notificaciones por SMS:
from django.shortcuts import render from django.http import HttpResponse from .models import Feedback from twilio.rest import Client from django.conf import settings import requests def upload_to_pinata(file): url = "https://api.pinata.cloud/pinning/pinFileToIPFS" headers = { 'pinata_api_key': settings.PINATA_API_KEY, 'pinata_secret_api_key': settings.PINATA_SECRET_API_KEY, } files = {'file': file} response = requests.post(url, files=files, headers=headers) return response.json().get('IpfsHash') def submit_feedback(request): if request.method == 'POST': message = request.POST.get('message') sender_email = request.POST.get('sender_email') sender_phone = request.POST.get('sender_phone') file = request.FILES.get('media_file', None) media_url = None if file: media_url = upload_to_pinata(file) feedback = Feedback.objects.create( message=message, sender_email=sender_email, sender_phone=sender_phone, media_url=media_url ) # Send SMS using Twilio client = Client(settings.TWILIO_ACCOUNT_SID, settings.TWILIO_AUTH_TOKEN) client.messages.create( body=f"Feedback received from {sender_phone}: {message}", from_=settings.TWILIO_PHONE_NUMBER, to=sender_phone ) return HttpResponse("Feedback submitted successfully!") return render(request, 'feedback_form.html')
Esta vista maneja envíos de formularios, carga medios opcionales a Pinata y envía SMS usando Twilio.
2.3. Creando el formulario de comentarios
Cree un formulario HTML para enviar comentarios. En su carpeta de plantillas, cree feedback_form.html:
{% load static %}Submit Feedback Submit Feedback
Imagen del front-end
Imagen de Pinata Dashboard que muestra los archivos subidos
3.1. Configurar variables de entorno
Cree un archivo .env en el directorio raíz de su proyecto para almacenar información confidencial como claves API de Twilio y Pinata:
SECRET_KEY=your-django-secret-key DEBUG=True TWILIO_ACCOUNT_SID=your_twilio_account_sid TWILIO_AUTH_TOKEN=your_twilio_auth_token TWILIO_PHONE_NUMBER=your_twilio_phone_number PINATA_API_KEY=your_pinata_api_key PINATA_SECRET_API_KEY=your_pinata_secret_api_key
Asegúrate de agregar .env a tu archivo .gitignore para que no se envíe a GitHub:
.env
3.2. Actualice settings.py para usar variables de entorno
Utilice python-de Couple para cargar de forma segura variables de entorno desde el archivo .env:
from decouple import config SECRET_KEY = config('SECRET_KEY') DEBUG = config('DEBUG', default=False, cast=bool) TWILIO_ACCOUNT_SID = config('TWILIO_ACCOUNT_SID') TWILIO_AUTH_TOKEN = config('TWILIO_AUTH_TOKEN') TWILIO_PHONE_NUMBER = config('TWILIO_PHONE_NUMBER') PINATA_API_KEY = config('PINATA_API_KEY') PINATA_SECRET_API_KEY = config('PINATA_SECRET_API_KEY')
4.1. Inicializar Git y enviar a GitHub
git init git add . git commit -m "Initial commit for feedback system"
git remote add origin https://github.com/yourusername/feedback-system.git
git push -u origin main
En este tutorial, has creado un sistema seguro de comentarios anónimos utilizando Django, Twilio para notificaciones por SMS y Pinata para cargas multimedia. También aprendió cómo enviar su proyecto a GitHub y proteger información confidencial utilizando variables de entorno. Este sistema garantiza la privacidad y permite a los usuarios enviar comentarios y recibir notificaciones por SMS.
Siéntete libre de ampliar aún más el sistema añadiendo más funciones o mejorando la seguridad. Si esta guía le resultó útil, ¡comparta sus comentarios o preguntas en los comentarios!
El repositorio del proyecto se puede encontrar aquí: Repo
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3