Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk menggunakan rangka kerja Webman untuk melaksanakan Soal Jawab dalam talian dan fungsi asas pengetahuan?

Bagaimana untuk menggunakan rangka kerja Webman untuk melaksanakan Soal Jawab dalam talian dan fungsi asas pengetahuan?

王林
王林asal
2023-07-08 09:00:141020semak imbas

Bagaimana untuk menggunakan rangka kerja Webman untuk melaksanakan Soal Jawab dalam talian dan fungsi asas pengetahuan?

Webman ialah rangka kerja pembangunan web berasaskan Python Ia mudah digunakan, berkuasa dan sesuai untuk membina pelbagai aplikasi web dengan cepat. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Webman untuk melaksanakan Soal Jawab dalam talian dan fungsi asas pengetahuan. Berikut ialah langkah khusus:

Langkah 1: Persediaan persekitaran
Mula-mula, kita perlu memasang rangka kerja Webman. Ia boleh dipasang melalui arahan pip Buka terminal dan masukkan arahan berikut:

pip install webman

Selepas pemasangan berjaya, kita boleh mula menulis kod.

Langkah 2: Buat projek dan aplikasi
Masukkan arahan berikut dalam baris arahan untuk mencipta projek bernama "question_answer":

webman createproject question_answer
cd question_answer

Kemudian kita buat aplikasi bernama "qa":

webman createapp qa

Seterusnya, kita masukkan aplikasi qa direktori:

cd qa

Langkah 3: Reka bentuk model pangkalan data
Buat fail bernama models.py dalam direktori qa untuk mereka bentuk model pangkalan data. Kita boleh mencipta model menggunakan fungsi ORM yang terbina dalam rangka kerja Webman. Berikut ialah contoh model mudah:

from webman import db

class Question(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100))
    content = db.Column(db.Text)
    created_at = db.Column(db.DateTime, default=db.func.current_timestamp())

class Answer(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    question_id = db.Column(db.Integer, db.ForeignKey('question.id'))
    content = db.Column(db.Text)
    created_at = db.Column(db.DateTime, default=db.func.current_timestamp())

Kod di atas mentakrifkan dua model, Soal Jawab. Model Soalan digunakan untuk menyimpan tajuk, kandungan dan masa penciptaan soalan, dan model Jawapan digunakan untuk menyimpan kandungan dan masa penciptaan jawapan. Model Soalan dan model Jawapan berkaitan melalui question_id. Konfigurasi pangkalan data khusus boleh ditetapkan dalam fail settings.py projek.

Langkah 4: Tulis fungsi paparan dan laluan
Buat fail bernama views.py dalam direktori aplikasi qa untuk menulis fungsi paparan. Kita boleh menggunakan penghias paparan terbina dalam rangka kerja Webman untuk menentukan laluan. Berikut ialah contoh fungsi paparan ringkas:

from webman import app, db
from .models import Question, Answer

@app.route('/')
def index():
    questions = Question.query.all()
    return render_template('index.html', questions=questions)

@app.route('/question/<int:question_id>')
def question_detail(question_id):
    question = Question.query.get(question_id)
    answers = question.answers
    return render_template('question_detail.html', question=question, answers=answers)

@app.route('/answer/<int:answer_id>/edit', methods=['GET', 'POST'])
def edit_answer(answer_id):
    answer = Answer.query.get(answer_id)
    if request.method == 'POST':
        answer.content = request.form['content']
        db.session.commit()
        return redirect(url_for('question_detail', question_id=answer.question_id))
    return render_template('edit_answer.html', answer=answer)

Kod di atas mentakrifkan tiga fungsi paparan, yang digunakan untuk memaparkan halaman utama Soal Jawab, butiran soalan dan mengedit jawapan. Fungsi indeks digunakan untuk mendapatkan semua soalan dan mengembalikannya ke templat, fungsi question_detail digunakan untuk mencari soalan dan jawapan dengan id yang ditentukan dan mengembalikannya ke templat, dan fungsi edit_answer digunakan untuk mengedit jawapan dengan id yang ditentukan.

Langkah 5: Tulis fail templat
Buat folder bernama templat dalam direktori aplikasi qa untuk menyimpan fail templat. Berikut ialah contoh fail templat mudah:

index.html

{% for question in questions %}
    <h3>{{ question.title }}</h3>
    <p>{{ question.content }}</p>
{% endfor %}

question_detail.html

<h3>{{ question.title }}</h3>
<p>{{ question.content }}</p>
{% for answer in answers %}
    <p>{{ answer.content }}</p>
{% endfor %}

edit_answer.html

<form action="{{ url_for('edit_answer', answer_id=answer.id) }}" method="post">
    <textarea name="content">{{ answer.content }}</textarea>
    <input type="submit" value="保存">
</form>

Kod di atas mentakrifkan tiga fail templat, yang digunakan untuk memaparkan halaman utama Soal Jawab, butiran soalan dan diedit jawapan masing-masing.

Langkah 6: Jalankan aplikasi
Masukkan arahan berikut pada baris arahan untuk menjalankan aplikasi:

webman runserver

Masukkan http://localhost:5000 dalam pelayar untuk mengakses aplikasi.

Pada ketika ini, kami telah berjaya melaksanakan Soal Jawab dalam talian dan fungsi asas pengetahuan menggunakan rangka kerja Webman. Melalui langkah-langkah di atas, pembaca boleh dengan cepat memulakan rangka kerja Webman dan menggunakannya secara fleksibel dalam projek sebenar.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan rangka kerja Webman untuk melaksanakan Soal Jawab dalam talian dan fungsi asas pengetahuan?. 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