Using Python and Redis to build an online questionnaire: How to implement data collection and analysis
Introduction:
With the popularity and development of the Internet, online questionnaires have become important for collecting data and obtaining user feedback. One of the ways. This article will introduce how to use Python and Redis to build a simple and powerful online questionnaire system, and demonstrate how to implement data collection and analysis through code examples.
1. What is Redis?
Redis is an open source in-memory data storage system commonly used for caching, message queues and database middleware. It supports a variety of data structures, such as strings, lists, hash tables, etc., while providing a rich set of commands and functions, making it an ideal choice for building fast and stable applications.
2. How to use Python and Redis to build the basic framework of an online questionnaire system?
Preparation work:
First, we need to install the Redis library of Redis and Python, which can be installed through the following command:
pip install redis
Create the database of the questionnaire system:
import redis # 连接Redis数据库 r = redis.Redis(host='localhost', port=6379, db=0) # 创建一个问题和选项的字典(模拟数据库中的数据) question1 = { 'id': 1, 'question': '你最喜欢的编程语言是?', 'options': ['Python', 'Java', 'C++', 'JavaScript'] } # 将问题和选项存入Redis中 r.hmset('question:1', question1)
Build the front-end page of the questionnaire system:
For convenience, we can use Web frameworks such as Flask to build the front-end page. The following sample code demonstrates how to create a simple questionnaire page and store the options filled in by the user into the Redis database.
from flask import Flask, render_template, request import redis app = Flask(__name__) r = redis.Redis(host='localhost', port=6379, db=0) @app.route('/', methods=['GET', 'POST']) def survey(): if request.method == 'POST': question_id = request.form['question_id'] option = request.form['option'] # 将用户的选项存入Redis中 r.hincrby('question:' + question_id, option) return '选项已提交,感谢参与调查!' # 获取问题和选项 question = r.hgetall('question:1') return render_template('survey.html', question=question) if __name__ == '__main__': app.run()
Data analysis and display:
In order to analyze and display questionnaire data, we can use Python data analysis libraries such as pandas and matplotlib. The following sample code shows how to get data from Redis and perform simple visual analysis of the data using pandas and matplotlib.
import pandas as pd import matplotlib.pyplot as plt import redis r = redis.Redis(host='localhost', port=6379, db=0) # 获取所有问题和选项的数据 survey_data = [] questions = r.keys('question:*') for question_key in questions: data = r.hgetall(question_key) data['question_id'] = question_key.decode().split(':')[-1] survey_data.append(data) # 将问卷数据转换成DataFrame对象 df = pd.DataFrame(survey_data) # 统计每个选项的人数 df['total'] = df.sum(axis=1, numeric_only=True) # 数据可视化 df.plot(x='question_id', y='total', kind='bar') plt.xlabel('Question') plt.ylabel('Number of Responses') plt.title('Survey Results') plt.show()
Conclusion:
By using Python and Redis to build an online questionnaire system, and using Python's data analysis library to analyze and visualize the collected data, we can quickly and flexibly To build a practical questionnaire survey system. I hope the above example code can help readers understand how to use Python and Redis to implement the basic process of data collection and analysis.
The above is the detailed content of Using Python and Redis to build an online questionnaire: how to implement data collection and analysis. For more information, please follow other related articles on the PHP Chinese website!