📌  相关文章
📜  QA – 安置测验|简单的兴趣 |问题 4(1)

📅  最后修改于: 2023-12-03 15:04:43.778000             🧑  作者: Mango

QA – 安置测验|简单的兴趣 |问题 4

简介

该程序是一个QA系统,旨在测试用户对各个主题的知识水平,帮助用户发现自己在某一领域的不足,并提供相应的学习资源。

功能

该程序可以进行以下操作:

  1. 创建问题库
  2. 添加问题
  3. 删除问题
  4. 修改问题
  5. 显示问题及答案
  6. 进行测验
  7. 统计测验结果
技术细节

该程序基于Python 3.x开发,使用了以下技术:

  1. Flask框架:用于创建Web应用程序。
  2. SQLAlchemy:用于与数据库交互。
  3. Bootstrap:用于创建Web UI。
  4. pandas:用于数据分析和统计。

程序使用SQLite数据库存储问题和答案,将问题和答案封装为Question类,并将Question对象存储在数据库中。测验时从问题库中随机选择一定数量的问题进行测试,用户回答问题后,将答案与正确答案进行比较,并输出测验结果。

代码片段

以下是代码片段的markdown格式:

# 创建Flask应用程序
from flask import Flask, render_template, request

app = Flask(__name__)

# 创建数据库连接
from flask_sqlalchemy import SQLAlchemy

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///questions.db'
db = SQLAlchemy(app)

# 定义Question类,对应数据库中的questions表
class Question(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    category = db.Column(db.String(255), nullable=False)
    question = db.Column(db.String(1000), nullable=False)
    answer = db.Column(db.String(1000), nullable=False)

    def __repr__(self):
        return '<Question %r>' % self.id

# 添加问题
@app.route('/add_question', methods=['POST'])
def add_question():
    category = request.form.get('category')
    question = request.form.get('question')
    answer = request.form.get('answer')

    new_question = Question(category=category, question=question, answer=answer)
    db.session.add(new_question)
    db.session.commit()

    return render_template('add_question.html', message='问题添加成功!')

# 删除问题
@app.route('/delete_question', methods=['POST'])
def delete_question():
    question_id = request.form.get('question_id')
    question = Question.query.get(question_id)

    if question:
        db.session.delete(question)
        db.session.commit()

    return render_template('delete_question.html', message='问题删除成功!')

以上代码片段用于添加和删除问题,通过Flask提供的route装饰器,将不同的URL请求映射到对应的函数上。当用户在Web浏览器中提交表单时,这些函数将从请求对象中获取表单数据,并将数据保存到数据库中。