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 サイトの他の関連記事を参照してください。