继续贴题目:
贴代码:
import requestsimport randomfrom flask import Flask,request,render_template,url_for,redirectapp = Flask(__name__)def get_data(): """ 函数作用:从服务端读入题库,以JSON格式返回 输入:无 返回:从服务端题库随机读取10个题目,并返回 """ print("start process get_data") url = "http://127.0.0.1:8008/get" ret = requests.post(url) dic1 = ret.json() print("end process get_data") return dic1def orderlize(questionlist): """ 函数作用:读入列表,并把列表做处理,按照列表中每个字典的‘R’(难度) 大小排序。 输入:问题list列表 返回:根据'R‘排序后的问题列表 """ print("start process orderlize") print("列表通过难度值进行排序") sortedlist = sorted(questionlist,key = lambda i : i['R']) print(sortedlist) print("end process orderlize") return sortedlistdef randomlize_input(dic1): """ 函数作用:输入问题,对这个问题里面的答案和干扰项目做随机化,并返回给展示界面,包含问题、正确答案、随机化的答案+干扰项目 输入:问题list 列表中的每一个对象(字典对象) 输出:返回这个字典 """ list1 = [dic1['A'], dic1['D1'], dic1['D2'], dic1['D3']] listrandom = random.sample(list1,4) return dic1['Q'],dic1['A'],listrandom@app.route('/',methods=['GET','POST'])def start_html(): """ 1.get请求打开首页,选择开始答题。 介绍规则,选择10道题,然后从容易往复杂进行答复,如果答题错误则结束。 2.post请求 展示开始答题 跳转到函数答题 """ #逻辑1:点击开始答题,读取题库信息 if request.method == "POST": return redirect('/question') if request.method == "GET": #1.展示首页,展示"开始答题" #1.1 点击开始答题发送请求到后端开始答题 return render_template('index57.html')@app.route('/question',methods=['GET','POST'])def start_question(): if request.method == "POST": #2.1 接收用户选择, #2.2判断第一道题答案是否正确 #2.3 如果正确,累计答题正确数+1,且调度下一道题 #2.5 如果失败,统计答题正确数right,传递到展示展示界面 return 1 if request.method == "GET": #2.1 接收传入的字典信息, dic1 = get_data() print(dic1) questionlist = dic1['data'] sortedlist = orderlize(questionlist) print(sortedlist) #2.2 展示第一道题 Q,A,listrandom = randomlize_input(sortedlist[0]) return render_template('start_question.html',Q=Q,A=A,listrandom=listrandom)@app.route('/statistics')def take_account(right): # 展示正确答案 return 1if __name__ =='__main__': app.run(host='0.0.0.0',port=80,debug = True)
先准备几个函数逻辑:
读取数据+序列化数据
"""函数作用:从服务端读入题库,以JSON格式返回输入:无返回:从服务端题库随机读取10个题目,并返回"""
2.orderlize(questionlist)函数
"""
函数作用:读入问题列表,并把列表做处理,按照列表中每个字典的‘R’(难度) 大小排序。
输入:问题list列表
返回:根据'R‘排序后的问题列表
"""
3.randomlize_input(dic1) 函数
"""
函数作用:输入问题,对这个问题里面的答案和干扰项目做随机化,并返回给展示界面,包含问题、正确答案、随机化的答案+干扰项目
输入:问题list 列表中的每一个对象(字典对象)
输出:返回问题、返回正确答案,返回随机化的答案+干扰项目列表
"""
4.准备第一个逻辑:
"""
1.get请求打开首页,选择开始答题。
介绍规则,选择10道题,然后从容易往复杂进行答复,如果答题错误则结束。
2.post请求 展示开始答题
跳转到函数答题
"""
5.准备第二个逻辑:(未完成,待续)
#2.1 接收用户选择,
#2.2判断第一道题答案是否正确
#2.3 如果正确,累计答题正确数+1,且调度下一道题
#2.5 如果失败,统计答题正确数right,传递到展示展示界面
今天主要按照之前准备的主逻辑写分支逻辑及对应的实现函数。一边写一边验证,还未完成,先放到这里。
主逻辑参考这里:
https://www.toutiao.com/article/7128196832081183236/
待续。
留言与评论(共有 0 条评论) “” |