在这个数据驱动的时代,问卷调查成为了获取用户反馈、市场调研的重要工具。本文将带你一步步用Python语言构建一个简易的在线问卷调查系统,助你轻松收集和分析数据。
项目背景
无论是企业产品调研,还是学术研究,问卷调查都是不可或缺的一环。然而,传统的纸质问卷不仅效率低下,数据整理也费时费力。借助Python的强大功能,我们可以快速搭建一个在线问卷调查系统,实现问卷的发布、填写、收集和分析一体化。
技术选型
为了简化开发流程,我们选择以下技术栈:
- 后端:Python + Flask(轻量级Web框架)
- 数据库:SQLite(轻量级数据库,适合小型项目)
- 前端:HTML + CSS + JavaScript(基础的前端技术)
步骤分解
1. 环境搭建
首先,确保你已经安装了Python和Flask。可以通过以下命令安装Flask:
pip install Flask
2. 后端实现
使用Flask框架创建一个简单的Web应用。以下是基本的后端代码:
from flask import Flask, request, jsonify
app = Flask(__name__)
# 存储问卷数据
responses = []
@app.route('/submit', methods=['POST'])
def submit():
data = request.json
responses.append(data)
return jsonify({"status": "success", "message": "Thank you for your response!"})
if __name__ == '__main__':
app.run(debug=True)
3. 前端实现
创建一个简单的HTML表单,用于用户填写问卷:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>问卷调查</title>
</head>
<body>
<h1>请填写问卷</h1>
<form id="surveyForm">
<label for="name">姓名:</label>
<input type="text" id="name" name="name"><br><br>
<label for="age">年龄:</label>
<input type="number" id="age" name="age"><br><br>
<input type="submit" value="提交">
</form>
<script>
document.getElementById('surveyForm').addEventListener('submit', function(e) {
e.preventDefault();
const formData = {
name: document.getElementById('name').value,
age: document.getElementById('age').value
};
fetch('/submit', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(formData)
})
.then(response => response.json())
.then(data => alert(data.message));
});
</script>
</body>
</html>
4. 数据存储与分析
后端接收到数据后,可以存储在SQLite数据库中,便于后续分析。以下是简单的数据库操作示例:
import sqlite3
def init_db():
conn = sqlite3.connect('survey.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS responses
(id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
conn.commit()
conn.close()
def save_response(name, age):
conn = sqlite3.connect('survey.db')
c = conn.cursor()
c.execute("INSERT INTO responses (name, age) VALUES (?, ?)", (name, age))
conn.commit()
conn.close()
@app.route('/submit', methods=['POST'])
def submit():
data = request.json
save_response(data['name'], data['age'])
return jsonify({"status": "success", "message": "Thank you for your response!"})
if __name__ == '__main__':
init_db()
app.run(debug=True)
5. 总结
通过以上步骤,我们成功搭建了一个简易的在线问卷调查系统。用户可以通过网页填写问卷,后端接收并存储数据,便于后续分析。当然,这只是一个基础版本,实际应用中可以根据需求进行更多功能扩展,如增加更多问卷题目、数据可视化等。
希望这篇文章能为你提供一些灵感和帮助,动手试试吧!
评论(0)