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

王林
リリース: 2023-08-06 08:58:01
オリジナル
1045 人が閲覧しました

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//', views.chat_view, name='chat'), path('contact-list/', views.contact_list_view, name='contact_list'), ]
ログイン後にコピー

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

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

chat.html:

{% extends 'base.html' %} {% block content %} 

Chat with {{ receiver.username }}

{% for message in messages %}

{{ message.timestamp }} - {{ message.sender.username }}: {{ message.content }}

{% endfor %}
{% csrf_token %}
{% endblock %}
ログイン後にコピー

contact_list。 html:

{% extends 'base.html' %} {% block content %} 

Contact List

{% endblock %}
ログイン後にコピー

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

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

INSTALLED_APPS = [ ... 'chat', ]
ログイン後にコピー

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

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

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!