Maison > Article > développement back-end > Comment écrire la fonction de chat en ligne du système CMS en Python
Comment écrire la fonction de chat en ligne du système CMS en Python
Avec le développement continu des technologies de l'information, la messagerie instantanée a été largement utilisée dans divers domaines. L'ajout d'une fonction de chat en ligne au système CMS peut aider les administrateurs de sites Web et les utilisateurs à mieux communiquer. Cet article expliquera comment utiliser Python pour écrire la fonction de chat en ligne d'un système CMS, avec des exemples de code.
Tout d’abord, nous devons choisir un framework Python adapté. Dans cet exemple, nous utiliserons le framework Django. Django est un framework de développement Web populaire qui fournit de nombreux outils et fonctions puissants pour nous faciliter la création d'un système CMS complet. Si Django n’est pas encore installé, installez-le d’abord.
Après avoir installé Django, nous commençons à créer un nouveau projet Django. Ouvrez une fenêtre de ligne de commande et entrez la commande suivante :
django-admin startproject chat_cms
Cela créera un nouveau projet nommé chat_cms dans le répertoire courant. Ensuite, nous allons dans le répertoire du projet et créons une application :
cd chat_cms python manage.py startapp chat
Ensuite, nous devons définir le modèle pour stocker les messages de chat. Dans le fichier models.py de l'application de chat, saisissez le code suivant :
from django.db import models from django.contrib.auth.models import User class Message(models.Model): sender = models.ForeignKey(User, on_delete=models.CASCADE, related_name='sent_messages') receiver = models.ForeignKey(User, on_delete=models.CASCADE, related_name='received_messages') content = models.TextField() timestamp = models.DateTimeField(auto_now_add=True)
Ce modèle définit une classe de message qui a un expéditeur, un destinataire, un contenu et un horodatage. Les messages envoyés et reçus sont facilement accessibles dans le modèle User à l'aide du paramètre Related_name.
Ensuite, nous devons créer la fonction d'affichage correspondante dans Django. Dans le fichier vues.py de l'application de chat, entrez le code suivant :
from django.shortcuts import render, get_object_or_404 from django.contrib.auth.decorators import login_required from chat.models import Message @login_required def chat_view(request, receiver_id): receiver = get_object_or_404(User, id=receiver_id) if request.method == 'POST': content = request.POST['content'] message = Message(sender=request.user, receiver=receiver, content=content) message.save() messages = Message.objects.filter(sender=request.user, receiver=receiver) | Message.objects.filter(sender=receiver, receiver=request.user) return render(request, 'chat/chat.html', {'receiver': receiver, 'messages': messages}) @login_required def contact_list_view(request): contacts = User.objects.exclude(id=request.user.id) return render(request, 'chat/contact_list.html', {'contacts': contacts})
Cette fonction d'affichage chat_view est responsable de l'affichage et du traitement de l'interface de chat avec un certain utilisateur, et nécessite une connexion pour y accéder. Il obtiendra l'ID de l'expéditeur à partir de l'URL, puis trouvera l'utilisateur correspondant en fonction de l'ID. Si la méthode de requête est POST, cela signifie que l'utilisateur a envoyé un nouveau message et nous l'enregistrerons dans la base de données. Enfin, tous les messages liés à ces deux utilisateurs sont transmis au modèle pour affichage.
Une autre fonction d'affichage contact_list_view est chargée d'afficher la liste de contacts de l'utilisateur actuel et nécessite également une connexion pour y accéder. Il exclura l'utilisateur actuel lui-même et transmettra tous les autres utilisateurs au modèle.
Ensuite, nous devons définir la route URL pour mapper la fonction d'affichage. Dans le fichier urls.py de l'application de chat, saisissez le code suivant :
from django.urls import path from chat import views app_name = 'chat' urlpatterns = [ path('chat/<int:receiver_id>/', views.chat_view, name='chat'), path('contact-list/', views.contact_list_view, name='contact_list'), ]
Ce qui précède définit deux routes d'URL, correspondant aux deux fonctions de visualisation mentionnées ci-dessus. Parmi eux, c9f6b0e14d05317692e4d9e16d90c0b0
signifie recevoir un paramètre de type entier comme identifiant du destinataire.
Enfin, nous devons créer des modèles pour afficher l'interface de chat et la liste de contacts. Dans le répertoire templates/chat de l'application de chat, créez deux fichiers modèles, chat.html et contact_list.html, et saisissez respectivement les codes suivants :
chat.html :
{% extends 'base.html' %} {% block content %} <h1>Chat with {{ receiver.username }}</h1> <div id="messages"> {% for message in messages %} <p>{{ message.timestamp }} - {{ message.sender.username }}: {{ message.content }}</p> {% endfor %} </div> <form method="post" action="{% url 'chat:chat' receiver.id %}"> {% csrf_token %} <input type="text" name="content" required> <button type="submit">Send</button> </form> {% endblock %}
contact_list.html :
{% extends 'base.html' %} {% block content %} <h1>Contact List</h1> <ul> {% for contact in contacts %} <li><a href="{% url 'chat:chat' contact.id %}">{{ contact.username }}</a></li> {% endfor %} </ul> {% endblock %}
Les modèles ci-dessus sont affichés respectivement. La structure HTML de l'interface de discussion et de la liste de contacts utilise la syntaxe du modèle de Django pour afficher les messages et les informations utilisateur.
Enfin, nous devons modifier le fichier settings.py du projet et ajouter l'application de chat à la liste INSTALLED_APPS :
INSTALLED_APPS = [ ... 'chat', ]
À ce stade, nous avons terminé l'écriture de la fonction de chat en ligne du système CMS en Python. Grâce aux étapes ci-dessus, nous avons créé un projet Django et défini le modèle de message, la fonction d'affichage, le routage d'URL et le modèle pour implémenter le chat en ligne entre les utilisateurs. Vous pouvez encore développer et améliorer en fonction des besoins réels.
J'espère que cet article vous sera utile et je vous souhaite bonne chance dans la rédaction de la fonction de chat en ligne de votre système CMS !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!