Heim  >  Artikel  >  Backend-Entwicklung  >  So schreiben Sie die Online-Chat-Funktion des CMS-Systems in Python

So schreiben Sie die Online-Chat-Funktion des CMS-Systems in Python

王林
王林Original
2023-08-06 08:57:031070Durchsuche

So schreiben Sie die Online-Chat-Funktion des CMS-Systems in Python

Mit der kontinuierlichen Entwicklung der Informationstechnologie ist Instant Messaging in verschiedenen Bereichen weit verbreitet. Das Hinzufügen einer Online-Chat-Funktion zum CMS-System kann Website-Administratoren und Benutzern helfen, besser zu kommunizieren. In diesem Artikel wird anhand von Codebeispielen erläutert, wie Sie mit Python die Online-Chat-Funktion eines CMS-Systems schreiben.

Zuerst müssen wir ein geeignetes Python-Framework auswählen. In diesem Beispiel verwenden wir das Django-Framework. Django ist ein beliebtes Webentwicklungs-Framework, das viele leistungsstarke Tools und Funktionen bietet, die uns die Erstellung eines vollständigen CMS-Systems erleichtern. Wenn Sie Django noch nicht installiert haben, installieren Sie es zuerst.

Nach der Installation von Django beginnen wir mit der Erstellung eines neuen Django-Projekts. Öffnen Sie ein Befehlszeilenfenster und geben Sie den folgenden Befehl ein:

django-admin startproject chat_cms

Dadurch wird ein neues Projekt mit dem Namen chat_cms im aktuellen Verzeichnis erstellt. Als nächstes gehen wir in das Projektverzeichnis und erstellen eine Anwendung:

cd chat_cms
python manage.py startapp chat

Als nächstes müssen wir das Modell zum Speichern von Chat-Nachrichten definieren. Geben Sie in der Datei models.py der Chat-Anwendung den folgenden Code ein:

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)

Dieses Modell definiert eine Nachrichtenklasse, die über einen Absender, einen Empfänger, einen Inhalt und einen Zeitstempel verfügt. Auf gesendete und empfangene Nachrichten kann im Benutzermodell mithilfe des Parameters related_name einfach zugegriffen werden.

Als nächstes müssen wir die entsprechende Ansichtsfunktion in Django erstellen. Geben Sie in der Datei „views.py“ der Chat-Anwendung den folgenden Code ein:

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})

Diese Ansichtsfunktion chat_view ist für die Anzeige und Verarbeitung der Chat-Schnittstelle mit einem bestimmten Benutzer verantwortlich und erfordert für den Zugriff eine Anmeldung. Es ruft die Absender-ID aus der URL ab und findet dann anhand der ID den entsprechenden Benutzer. Wenn die Anforderungsmethode POST ist, bedeutet dies, dass der Benutzer eine neue Nachricht gesendet hat und wir diese in der Datenbank speichern. Schließlich werden alle Nachrichten, die sich auf diese beiden Benutzer beziehen, zur Anzeige an die Vorlage übergeben.

Eine weitere Ansichtsfunktion contact_list_view ist für die Anzeige der Kontaktliste des aktuellen Benutzers verantwortlich und erfordert für den Zugriff ebenfalls eine Anmeldung. Dadurch wird der aktuelle Benutzer selbst ausgeschlossen und alle anderen Benutzer an die Vorlage übergeben.

Als nächstes müssen wir die URL-Route definieren, um die Ansichtsfunktion abzubilden. Geben Sie in der Datei urls.py der Chat-Anwendung den folgenden Code ein:

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'),
]

Das Obige definiert zwei URL-Routen, die den beiden oben genannten Ansichtsfunktionen entsprechen. Darunter bedeutet c9f6b0e14d05317692e4d9e16d90c0b0 den Empfang eines ganzzahligen Parameters als Empfänger-ID.

Abschließend müssen wir Vorlagen erstellen, um die Chat-Oberfläche und die Kontaktliste anzuzeigen. Erstellen Sie im Verzeichnis templates/chat der Chat-Anwendung zwei Vorlagendateien, chat.html und contact_list.html, und geben Sie jeweils die folgenden Codes ein:

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 %}

Die oben genannten Vorlagen Die HTML-Struktur der Chat-Oberfläche und der Kontaktliste verwendet die Vorlagensyntax von Django, um Nachrichten und Benutzerinformationen anzuzeigen.

Schließlich müssen wir die Datei „settings.py“ des Projekts ändern und die Chat-Anwendung zur Liste „INSTALLED_APPS“ hinzufügen:

INSTALLED_APPS = [
    ...
    'chat',
]

An diesem Punkt haben wir das Schreiben der Online-Chat-Funktion des CMS-Systems in Python abgeschlossen. Durch die oben genannten Schritte haben wir ein Django-Projekt erstellt und das Nachrichtenmodell, die Ansichtsfunktion, das URL-Routing und die Vorlage definiert, um einen Online-Chat zwischen Benutzern zu implementieren. Sie können je nach tatsächlichem Bedarf weiter ausbauen und verbessern.

Ich hoffe, dieser Artikel ist hilfreich für Sie und wünsche Ihnen viel Glück beim Schreiben der Online-Chat-Funktion Ihres CMS-Systems!

Das obige ist der detaillierte Inhalt vonSo schreiben Sie die Online-Chat-Funktion des CMS-Systems in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn