我们将使用 Flask 框架来构建这个网站,Flask 是一个轻量级的 Python Web 应用框架,它简单而灵活,非常适合用于快速开发原型和构建小型 Web 应用。我们将使用 SQLite 数据库来存储题目和答案数据,并使用 HTML 模板来呈现用户界面。
首先,我们需要准备题目和答案数据。我们将数据存储在一个 SQLite 数据库中,数据库包含一个名为 exam
的表,其中包含题目、选项和正确答案的字段。
# 创建 SQLite 连接和表
conn = sqlite3.connect('duanxiaofang.db')
cursor = conn.cursor()
# 创建 exam 表
cursor.execute('''
CREATE TABLE IF NOT EXISTS exam (
question TEXT,
Answer_A TEXT,
Answer_B TEXT,
Answer_C TEXT,
Answer_D TEXT,
right_Answer TEXT
)
''')
# 插入题目数据...
下一步是编写 Flask 应用,这个应用将处理网站的请求并渲染 HTML 模板。我们定义一个路由 /
来处理首页请求,并在该路由中查询数据库中的题目数据,然后将其传递给模板进行渲染。
from flask import Flask, render_template
import sqlite3
app = Flask(__name__, template_folder='templates')
@app.route('/')
def index():
# 连接SQLite数据库...
# 查询题目数据...
# 创建题目列表...
# 渲染模板并传递数据
return render_template('index.html', total_questions=total_questions, question_list=question_list)
if __name__ == '__main__':
app.run(debug=True)
最后,我们编写 HTML 模板来呈现题目和选项。在模板中,我们使用 Flask 提供的模板语言来动态显示题目数据,并使用表单来允许用户提交答案。
<p>共 {{ total_questions }} 题</p>
<form action="/" method="post">
{% for question in question_list %}
<h3>{{ question.question }}</h3>
<input type="radio" name="{{ question.question }}" value="A"> {{ question.Answer_A }}<br>
<input type="radio" name="{{ question.question }}" value="B"> {{ question.Answer_B }}<br>
<input type="radio" name="{{ question.question }}" value="C"> {{ question.Answer_C }}<br>
<input type="radio" name="{{ question.question }}" value="D"> {{ question.Answer_D }}<br>
<br>
{% endfor %}
<input type="submit" value="提交答案">
</form>
from flask import Flask, render_template
import sqlite3
app = Flask(__name__, template_folder='templates')
@app.route('/')
def index():
conn = sqlite3.connect('.db')
cursor = conn.cursor()
cursor.execute('SELECT COUNT(*) FROM exam')
total_questions = cursor.fetchone()[0]
cursor.execute('SELECT question, Answer_A, Answer_B, Answer_C, Answer_D, right_Answer FROM exam')
questions = cursor.fetchall()
conn.close()
question_list = [
{
'question': question[0],
'Answer_A': question[1],
'Answer_B': question[2],
'Answer_C': question[3],
'Answer_D': question[4],
'right_Answer': question[5]
} for question in questions
]
return render_template('index.html', total_questions=total_questions, question_list=question_list)
if __name__ == '__main__':
app.run(debug=True)
# pyinstaller -F --add-data "static;static" --add-data "templates;templates" x.py
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。