Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menulis fungsi sembang dalam talian sistem CMS dalam Python

Bagaimana untuk menulis fungsi sembang dalam talian sistem CMS dalam Python

王林
王林asal
2023-08-06 08:57:031122semak imbas

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn