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

王林
王林original
2023-08-06 08:57:031122parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn