Rumah >pangkalan data >Redis >Menggunakan Python dan Redis untuk membina soal selidik dalam talian: cara melaksanakan pengumpulan dan analisis data
Membina soal selidik dalam talian menggunakan Python dan Redis: Cara melaksanakan pengumpulan dan analisis data
Pengenalan:
Dengan populariti dan perkembangan Internet, soal selidik dalam talian telah menjadi salah satu cara penting untuk mengumpul data dan mendapatkan maklum balas pengguna. Artikel ini akan memperkenalkan cara menggunakan Python dan Redis untuk membina sistem soal selidik dalam talian yang ringkas dan berkuasa, dan menunjukkan cara melaksanakan pengumpulan dan analisis data melalui contoh kod.
1. Apakah itu Redis?
Redis ialah sistem storan data dalam memori sumber terbuka yang biasa digunakan untuk caching, baris gilir mesej dan perisian tengah pangkalan data. Ia menyokong pelbagai struktur data, seperti rentetan, senarai, jadual cincang, dsb., dan menyediakan set perintah dan fungsi yang kaya, menjadikannya pilihan ideal untuk membina aplikasi yang pantas dan stabil.
2. Bagaimanakah cara menggunakan Python dan Redis untuk membina rangka kerja asas sistem soal selidik dalam talian?
Persediaan:
Pertama, kita perlu memasang perpustakaan Redis Redis dan Python, yang boleh dipasang melalui arahan berikut:
pip install redis
Buat pangkalan data sistem soal selidik:
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)🜎
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()
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()
Atas ialah kandungan terperinci Menggunakan Python dan Redis untuk membina soal selidik dalam talian: cara melaksanakan pengumpulan dan analisis data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!