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

Bagaimana untuk menulis fungsi sembang dalam talian sistem CMS dalam Python

王林
Lepaskan: 2023-08-06 08:58:01
asal
1165 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

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)
Salin selepas log masuk

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})
Salin selepas log masuk

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'),
]
Salin selepas log masuk

Di atas mentakrifkan dua laluan URL, sepadan dengan dua fungsi paparan yang dinyatakan di atas. Antaranya, <int:receiver_id> 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 %}
Salin selepas log masuk

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 %}
Salin selepas log masuk

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',
]
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan