前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 Flask 构建可视化题库数据分析大屏幕

使用 Flask 构建可视化题库数据分析大屏幕

原创
作者头像
菜菜有点菜
发布2024-06-10 14:28:43
1046
发布2024-06-10 14:28:43
举报
文章被收录于专栏:白菜博客白菜博客

效果

1. 简介

我们将使用 Flask 框架来构建这个网站,Flask 是一个轻量级的 Python Web 应用框架,它简单而灵活,非常适合用于快速开发原型和构建小型 Web 应用。我们将使用 SQLite 数据库来存储题目和答案数据,并使用 HTML 模板来呈现用户界面。

2. 数据准备

首先,我们需要准备题目和答案数据。我们将数据存储在一个 SQLite 数据库中,数据库包含一个名为 exam 的表,其中包含题目、选项和正确答案的字段。

代码语言:sql
复制
# 创建 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
)
''')

# 插入题目数据...

3. Flask 应用

下一步是编写 Flask 应用,这个应用将处理网站的请求并渲染 HTML 模板。我们定义一个路由 / 来处理首页请求,并在该路由中查询数据库中的题目数据,然后将其传递给模板进行渲染。

代码语言:python
复制
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)

4. HTML 模板

最后,我们编写 HTML 模板来呈现题目和选项。在模板中,我们使用 Flask 提供的模板语言来动态显示题目数据,并使用表单来允许用户提交答案。

代码语言:html
复制
<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>

目录结构:

完整代码:

代码语言:python
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 效果
    • 1. 简介
      • 2. 数据准备
        • 3. Flask 应用
          • 4. HTML 模板
            • 目录结构:
            • 完整代码:
            相关产品与服务
            数据保险箱
            数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档