Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,19 +1,21 @@
|
|
| 1 |
import streamlit as st
|
|
|
|
|
|
|
| 2 |
|
| 3 |
# 添加标题
|
| 4 |
-
st.title('
|
| 5 |
|
| 6 |
# 添加问题和选项
|
| 7 |
-
question_1 = st.text_input('
|
| 8 |
-
option_1_1 = st.checkbox('
|
| 9 |
-
option_1_2 = st.checkbox('
|
| 10 |
|
| 11 |
-
question_2 = st.text_input('
|
| 12 |
-
option_2_1 = st.checkbox('
|
| 13 |
-
option_2_2 = st.checkbox('
|
| 14 |
|
| 15 |
# 显示提交按钮
|
| 16 |
-
submit_button = st.button('
|
| 17 |
|
| 18 |
# 创建一个字典来存储用户答案
|
| 19 |
user_answers = {}
|
|
@@ -21,14 +23,14 @@ user_answers = {}
|
|
| 21 |
# 处理提交按钮的点击事件
|
| 22 |
if submit_button:
|
| 23 |
# 存储用户的答案
|
| 24 |
-
user_answers['
|
| 25 |
-
'
|
| 26 |
-
'
|
| 27 |
}
|
| 28 |
|
| 29 |
-
user_answers['
|
| 30 |
-
'
|
| 31 |
-
'
|
| 32 |
}
|
| 33 |
|
| 34 |
# 打印用户的答案
|
|
@@ -39,10 +41,43 @@ if submit_button:
|
|
| 39 |
if value:
|
| 40 |
st.write(f'- {option}')
|
| 41 |
|
| 42 |
-
# 将用户的选择写入文件
|
| 43 |
-
with open('user_data.txt', 'a') as file:
|
| 44 |
-
file.write(f'Question: {question}\n')
|
| 45 |
-
file.write(f'Option: {options}\n\n')
|
| 46 |
-
|
| 47 |
# 显示感谢信息或其他处理
|
| 48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
import streamlit as st
|
| 2 |
+
import smtplib
|
| 3 |
+
from email.mime.text import MIMEText
|
| 4 |
|
| 5 |
# 添加标题
|
| 6 |
+
st.title('User Study')
|
| 7 |
|
| 8 |
# 添加问题和选项
|
| 9 |
+
question_1 = st.text_input('question 1:')
|
| 10 |
+
option_1_1 = st.checkbox('option 1', key='question_1_option_1')
|
| 11 |
+
option_1_2 = st.checkbox('option 2', key='question_1_option_2')
|
| 12 |
|
| 13 |
+
question_2 = st.text_input('question 2:')
|
| 14 |
+
option_2_1 = st.checkbox('option 1', key='question_2_option_1')
|
| 15 |
+
option_2_2 = st.checkbox('option 2', key='question_2_option_2')
|
| 16 |
|
| 17 |
# 显示提交按钮
|
| 18 |
+
submit_button = st.button('submit')
|
| 19 |
|
| 20 |
# 创建一个字典来存储用户答案
|
| 21 |
user_answers = {}
|
|
|
|
| 23 |
# 处理提交按钮的点击事件
|
| 24 |
if submit_button:
|
| 25 |
# 存储用户的答案
|
| 26 |
+
user_answers['question 1'] = {
|
| 27 |
+
'option 1': option_1_1,
|
| 28 |
+
'option 2': option_1_2
|
| 29 |
}
|
| 30 |
|
| 31 |
+
user_answers['question 2'] = {
|
| 32 |
+
'option 1': option_2_1,
|
| 33 |
+
'option 2': option_2_2
|
| 34 |
}
|
| 35 |
|
| 36 |
# 打印用户的答案
|
|
|
|
| 41 |
if value:
|
| 42 |
st.write(f'- {option}')
|
| 43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
# 显示感谢信息或其他处理
|
| 45 |
+
# 发送邮件
|
| 46 |
+
send_email(user_data)
|
| 47 |
+
st.write('谢谢参与调查!')
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
|
| 51 |
+
def send_email(user_data):
|
| 52 |
+
# 邮件配置
|
| 53 |
+
sender_email = 'BachelorThesisT@outlook.com'
|
| 54 |
+
receiver_email = 'taijunzhe@gmail.com'
|
| 55 |
+
subject = '用户数据'
|
| 56 |
+
message = format_user_data(user_data)
|
| 57 |
+
|
| 58 |
+
# 创建 MIMEText 对象
|
| 59 |
+
msg = MIMEText(message)
|
| 60 |
+
msg['Subject'] = subject
|
| 61 |
+
msg['From'] = sender_email
|
| 62 |
+
msg['To'] = receiver_email
|
| 63 |
+
|
| 64 |
+
# 发送邮件
|
| 65 |
+
try:
|
| 66 |
+
with smtplib.SMTP('smtp.office365.com', 587) as smtp:
|
| 67 |
+
smtp.starttls()
|
| 68 |
+
smtp.login('BachelorThesisT@outlook.com', '1111122222t')
|
| 69 |
+
smtp.send_message(msg)
|
| 70 |
+
print('邮件发送成功')
|
| 71 |
+
except smtplib.SMTPException as e:
|
| 72 |
+
print('邮件发送失败:', str(e))
|
| 73 |
+
|
| 74 |
+
def format_user_data(user_data):
|
| 75 |
+
# 格式化用户数据为邮件内容
|
| 76 |
+
formatted_data = ''
|
| 77 |
+
for key, value in user_data.items():
|
| 78 |
+
formatted_data += f'{key}: {value}\n'
|
| 79 |
+
return formatted_data
|
| 80 |
+
|
| 81 |
+
# 模拟用户数据
|
| 82 |
+
user_data = user_answers
|
| 83 |
+
|