📅  最后修改于: 2023-12-03 15:04:43.778000             🧑  作者: Mango
该程序是一个QA系统,旨在测试用户对各个主题的知识水平,帮助用户发现自己在某一领域的不足,并提供相应的学习资源。
该程序可以进行以下操作:
该程序基于Python 3.x开发,使用了以下技术:
程序使用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浏览器中提交表单时,这些函数将从请求对象中获取表单数据,并将数据保存到数据库中。