Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menulis fungsi sembang dalam talian sistem CMS dalam Python
Cara menulis fungsi sembang dalam talian sistem CMS dalam Python
Dengan perkembangan teknologi maklumat yang berterusan, pemesejan segera telah digunakan secara meluas dalam pelbagai bidang. Menambah fungsi sembang dalam talian pada sistem CMS boleh membantu pentadbir laman web dan pengguna berkomunikasi dengan lebih baik. Artikel ini akan memperkenalkan cara menggunakan Python untuk menulis fungsi sembang dalam talian sistem CMS, dengan contoh kod.
Pertama, kita perlu memilih rangka kerja Python yang sesuai. Dalam contoh ini, kita akan menggunakan rangka kerja Django. Django ialah rangka kerja pembangunan web popular yang menyediakan banyak alatan dan fungsi yang berkuasa untuk memudahkan kami mencipta sistem CMS yang lengkap. Jika anda belum memasang Django, pasang dahulu.
Selepas memasang Django, kami mula mencipta projek Django baharu. Buka tetingkap baris arahan dan masukkan arahan berikut:
django-admin startproject chat_cms
Ini akan mencipta projek baharu bernama chat_cms dalam direktori semasa. Seterusnya, kita pergi ke direktori projek dan mencipta aplikasi:
cd chat_cms python manage.py startapp chat
Seterusnya, kita perlu menentukan model untuk menyimpan mesej sembang. Dalam fail models.py aplikasi sembang, masukkan kod berikut:
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)
Model ini mentakrifkan kelas mesej yang mempunyai penghantar, penerima, kandungan dan cap waktu. Mesej yang dihantar dan diterima boleh diakses dengan mudah dalam model Pengguna menggunakan parameter related_name.
Seterusnya, kita perlu mencipta fungsi paparan yang sepadan dalam Django. Dalam fail views.py aplikasi sembang, masukkan kod berikut:
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})
Fungsi paparan chat_view ini bertanggungjawab untuk memaparkan dan memproses antara muka sembang dengan pengguna tertentu, dan memerlukan log masuk untuk mengakses. Ia akan mendapatkan ID pengirim daripada URL dan kemudian mencari pengguna yang sepadan berdasarkan ID tersebut. Jika kaedah permintaan adalah POST, bermakna pengguna telah menghantar mesej baru dan kami akan menyimpannya ke pangkalan data. Akhir sekali, semua mesej yang berkaitan dengan kedua-dua pengguna ini dihantar ke templat untuk paparan.
Fungsi paparan lain contact_list_view bertanggungjawab untuk memaparkan senarai kenalan pengguna semasa dan juga memerlukan log masuk untuk mengakses. Ia akan mengecualikan pengguna semasa itu sendiri dan menyerahkan semua pengguna lain ke templat.
Seterusnya, kita perlu menentukan laluan URL untuk memetakan fungsi paparan. Dalam fail urls.py aplikasi sembang, masukkan kod berikut:
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'), ]
Di atas mentakrifkan dua laluan URL, sepadan dengan dua fungsi paparan yang dinyatakan di atas. Antaranya, c9f6b0e14d05317692e4d9e16d90c0b0
bermaksud menerima parameter jenis integer sebagai ID penerima.
Akhir sekali, kita perlu mencipta templat untuk memaparkan antara muka sembang dan senarai kenalan. Dalam templat/direktori sembang aplikasi sembang, buat dua fail templat, chat.html dan contact_list.html, dan masukkan kod berikut masing-masing:
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 %}
Templat di atas ditunjukkan masing-masing Struktur HTML antara muka sembang dan senarai kenalan menggunakan sintaks templat Django untuk memaparkan mesej dan maklumat pengguna.
Akhir sekali, kami perlu mengubah suai fail settings.py projek dan menambah aplikasi sembang pada senarai INSTALLED_APPS:
INSTALLED_APPS = [ ... 'chat', ]
Pada ketika ini, kami telah menyelesaikan penulisan fungsi sembang dalam talian sistem CMS dalam Python. Melalui langkah di atas, kami mencipta projek Django dan menentukan model mesej, fungsi paparan, penghalaan URL dan templat untuk melaksanakan sembang dalam talian antara pengguna. Anda boleh mengembangkan dan menambah baik lagi mengikut keperluan sebenar.
Saya harap artikel ini membantu anda, dan saya ucapkan selamat maju jaya dalam menulis fungsi sembang dalam talian sistem CMS anda!
Atas ialah kandungan terperinci Bagaimana untuk menulis fungsi sembang dalam talian sistem CMS dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!