ホームページ  >  記事  >  バックエンド開発  >  CMSシステムのオンラインチャット機能をPythonで書く方法

CMSシステムのオンラインチャット機能をPythonで書く方法

王林
王林オリジナル
2023-08-06 08:57:031121ブラウズ

Python を使用して CMS システムのオンライン チャット機能を作成する方法

情報技術の継続的な発展に伴い、インスタント メッセージングは​​さまざまな分野で広く使用されています。 CMS システムにオンライン チャット機能を追加すると、Web サイト管理者とユーザーのコミュニケーションが向上します。この記事では、Python を使用して CMS システムのオンライン チャット機能を作成する方法をコード例とともに紹介します。

まず、適切な Python フレームワークを選択する必要があります。この例では、Django フレームワークを使用します。 Django は、完全な CMS システムの作成を容易にする多くの強力なツールと機能を提供する人気のある Web 開発フレームワークです。 Django をまだインストールしていない場合は、まずインストールしてください。

Django をインストールした後、新しい Django プロジェクトの作成を開始します。コマンド ライン ウィンドウを開き、次のコマンドを入力します。

django-admin startproject chat_cms

これにより、現在のディレクトリに chat_cms という名前の新しいプロジェクトが作成されます。次に、プロジェクト ディレクトリに移動してアプリケーションを作成します。

cd chat_cms
python manage.py startapp chat

次に、チャット メッセージを保存するモデルを定義する必要があります。チャット アプリケーションの models.py ファイルに、次のコードを入力します。

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)

このモデルは、送信者、受信者、コンテンツ、およびタイムスタンプを含むメッセージ クラスを定義します。 User モデルでは、relative_name パラメーターを使用して、送受信されたメッセージに簡単にアクセスできます。

次に、Django で対応するビュー関数を作成する必要があります。チャット アプリケーションの views.py ファイルに、次のコードを入力します。

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

このビュー関数 chat_view は、特定のユーザーとのチャット インターフェイスの表示と処理を担当し、アクセスするにはログインが必要です。 URL から送信者の ID を取得し、その ID に基づいて対応するユーザーを検索します。リクエストメソッドが POST の場合、ユーザーが新しいメッセージを送信し、それをデータベースに保存することを意味します。最後に、これら 2 人のユーザーに関連するすべてのメッセージが表示用のテンプレートに渡されます。

別のビュー関数 contact_list_view は、現在のユーザーの連絡先リストを表示する役割を果たしますが、アクセスするにはログインも必要です。現在のユーザー自体を除外し、他のすべてのユーザーをテンプレートに渡します。

次に、ビュー関数をマップするための URL ルートを定義する必要があります。チャット アプリケーションの urls.py ファイルに、次のコードを入力します。

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

上記は、前述の 2 つの表示関数に対応する 2 つの URL ルートを定義します。このうち、c9f6b0e14d05317692e4d9e16d90c0b0は、整数型パラメータを受信者のIDとして受け取ることを示します。

最後に、チャット インターフェイスと連絡先リストを表示するテンプレートを作成する必要があります。チャット アプリケーションの templates/chat ディレクトリに、chat.html と contact_list.html という 2 つのテンプレート ファイルを作成し、それぞれ次のコードを入力します:

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

上記のテンプレートは、それぞれチャット インターフェイスと連絡先リストの HTML 構造を示し、Django のテンプレート構文を使用してメッセージとユーザー情報を表示します。

最後に、プロジェクトの settings.py ファイルを変更し、チャット アプリケーションを INSTALLED_APPS リストに追加する必要があります:

INSTALLED_APPS = [
    ...
    'chat',
]

この時点で、次のオンライン チャット関数の作成が完了しました。 Python の CMS システム。上記の手順により、Django プロジェクトを作成し、ユーザー間のオンライン チャットを実装するためのメッセージ モデル、ビュー関数、URL ルーティング、テンプレートを定義しました。実際のニーズに応じてさらに拡張および改善できます。

この記事があなたのお役に立てば幸いです。また、CMS システムのオンライン チャット機能の作成に成功することを祈っています。

以上がCMSシステムのオンラインチャット機能をPythonで書く方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。