def login(): try: userid = request.form['user'] userpass = request.form['pass'] except: userid = request.cookies.get('user') userpass = request.cookies.get('pass') user_prof = my_func.sql_ALLuser_profile() # ユーザーのタイプ毎にリダイレクト if not (my_func.kakunin(userid, userpass)):# アカウントとパスワードの確認 sentence = 'IDまたはPASSが違います。正しいパスワードを入力してください。' redirect_to_index = render_template('error.html', sentence = sentence) elif user_prof[userid]['type'] == -1:# 利用停止中のアカウント sentence = 'あなたのアカウントは現在利用できません。' redirect_to_index = render_template('error.html', sentence = sentence) elif user_prof[userid]['type'] == 0:# 管理者 redirect_to_index = redirect('/admin/show', code=307) elif user_prof[userid]['type'] == 1:# 一般ユーザー redirect_to_index = redirect('/show', code=307) elif user_prof[userid]['type'] == 2:# 監督・コーチ redirect_to_index = redirect('/admin/show', code=307) resp = make_response(redirect_to_index) resp.set_cookie('user', userid) resp.set_cookie('pass', userpass) return resp
def hello(): userid = request.cookies.get('user') userpass = request.cookies.get('pass') hantei = my_func.kakunin(userid,userpass) user_prof = my_func.sql_ALLuser_profile() if hantei:# lonin success # 11~3月のみ雪マークを追加 weather = [{'num' : '{}'.format(i), 'moji' : tenki_dic[i]} for i in tenki_dic.keys() #if not(4 <= datetime.datetime.today().month <= 10) # and i=='4' or i=='0' or i=='1' or i=='2' or i=='3' ] # 飲水量の選択肢を追加 water = ['{:.2f}'.format(round(i*0.05,2))\ for i in range(201)] return render_template('hello.html', title = 'taberube.jp', name = user_prof[userid]['rname'], weather = weather, water = water, serverhost = server_address) else:# login fail sentence = '''You cannot log in on the website. Please try again from the start! (最初からやり直してください)''' return make_response(render_template('error.html', sentence = sentence))
def admin_message(): admin = request.cookies.get('user') adminpass = request.cookies.get('pass') user_prof = my_func.sql_ALLuser_profile() #if my_func.admin_coach_kakunin(admin, adminpass): if my_func.admin_kakunin(admin, adminpass): pass else: sentence = '改修中です。監督・コーチの掲示板の機能のご利用はもうしばらくお待ちください。' index = render_template('error.html', sentence = sentence) return make_response(index) messages = my_func.sql_message_get( admin, adminpass, max_messages = 10 ) posts = [] for d in messages: posts.append({ 'day' :d['day'], 'rname' :user_prof[d['userid']]['rname'], 'group' :d['group'], 'title' :d['title'], 'contents':d['contents']} ) if request.args.get('status') == 'first': try: my_func.kakunin(admin, adminpass) except Exception as error: return 'NG: '+error.__str__() index = render_template('admin_message.html', serverhost = server_address, posts = posts) resp = make_response(index) return resp try: if len(admin) == 0 or len(adminpass) == 0: return 'Cannot access message' # you have to add form of group below group = 'ALL' title = str(request.form['title']) contents = str(request.form['contents']) my_func.sql_message_send( admin, adminpass, group, title, contents, ) messages = my_func.sql_message_get( admin, adminpass, max_messages = 10 ) posts = [] for d in messages: posts.append({ 'day' :d['day'], 'rname' :user_prof[d['userid']]['rname'], 'group' :d['group'], 'title' :d['title'], 'contents':d['contents']} ) return render_template( 'admin_message.html', title = 'Message', user = admin, posts = posts, serverhost = server_address ) except Exception as error: return error.__str__()
def enter(): userid = request.cookies.get('user') userpass = request.cookies.get('pass') if my_func.kakunin(userid, userpass): pass else: sentence = '接続できません。最初の画面からやり直してください。' return make_response(render_template('error.html', sentence = sentence)) ## 不正入力処理 if len(request.form['text']) == 0: sentence = 'ERROR: 情報を送信できませんでした。すべての情報を正しく入力しましたか?'\ +'(detail: トレーニングメニューが入力されていません。)' return make_response(render_template('error.html', sentence = sentence)) if float(request.form['wb']) <= 0 or float(request.form['wb']) <= 0: sentence = '''ERROR: 情報を送信できませんでした。 (detail: あなたの体重が{}kgと{}kgになっています。 そんなわけありません!!!。)'''.format(request.form['wb'],request.form['wa']) return make_response(render_template('error.html',sentence=sentence)) if request.form['time'] == '' \ or request.form['temp'] == '' \ or request.form['sitsu'] == ''\ or request.form['moi'] == '': sentence = 'ERROR: 情報を送信できませんでした。すべての情報を正しく入力しましたか?'\ +'(detail: トレーニング時間、飲水量、気温、湿度のいずれかが未入力です。)' return make_response(render_template('error.html',sentence=sentence)) if float(request.form['time']) < 0 or float(request.form['moi']) < 0: sentence = 'ERROR: 情報を送信できませんでした。'\ + '(detail: 運動時間または飲水量を正の値にしてください。)' return make_response(render_template('error.html',sentence=sentence)) ## try: weight_after = float(request.form['wa']) weight_before = float(request.form['wb']) time = float(request.form['time']) moisture = float(request.form['moi']) shitsudo = float(request.form['sitsu']) temp = float(request.form['temp']) contents = str(request.form['text']) tenki = int(request.form['tenki']) my_func.sql_data_send(userid,#ログインするユーザ userpass,#ログインするユーザのパス weight_before, weight_after, contents,time, moisture,tenki, shitsudo, temp) data = my_func.sql_data_get(userid) posts = [] for d in reversed(data): neccessary1_tmp = round(float(d['wb'] * 0.99) \ - float(d['wa']) + float(d['moi']), 1) if neccessary1_tmp <= 0: neccessary1_tmp = 0 posts.append({ 'date' :d['day'],#日 'bweight' :d['wb'],#運動前体重 'aweight' :d['wa'],#運動後体重 'training' :d['contents'][0:10],#トレーニング内容 'period' :d['time'],#運動時間 'intake' :d['moi'],#飲水量 'dehydraterate':my_func.dassui_ritu(d['wb'], d['wa']),#脱水率 'tenki' :str(tenki_dic[str(d['tenki'])]),#天気 'shitsudo' :d['shitsudo'],#湿度 'temp' :d['temp'], 'dassui1' :round(my_func.hakkann_ritu_ex1(d['wb'], d['wa'], d['time']), 1), 'necessary' :round(my_func.hakkann_ryo(d['wb'], d['wa'], d['moi']), 1), 'necessary1' :neccessary1_tmp, 'w1' :round(d['wb'] * 0.99, 1)}) redirect_to_index = redirect('/show',code=307) resp = make_response(redirect_to_index) resp.set_cookie('user', userid) resp.set_cookie('pass', userpass) # showへリダイレクト return resp except Exception as error: sentence = 'ERROR: 情報を送信できませんでした。すべての情報を正しく入力しましたか?' \ +'(detail: '+error.__str__()+')' index = render_template('error.html', sentence = sentence) return make_response(index)
def show(): userid = request.cookies.get('user') userpass = request.cookies.get('pass') user_prof = my_func.sql_ALLuser_profile() if not (my_func.kakunin(userid, userpass)): sentence = 'IDまたはPASSが違います。正しいパスワードを入力してください。' return make_response(render_template('error.html', sentence = sentence)) try: data = my_func.sql_data_get(userid) posts = [] for d in reversed(data): neccessary1_tmp \ = round(float(d['wb'] * 0.01) + float(d['moi']), 1) if neccessary1_tmp <= 0: neccessary1_tmp = 0 shitsudo = d['shitsudo'] temp = d['temp'] if int(shitsudo) == 1111: shitsudo = '??' if int(temp) == 1111: temp = '??' posts.append({ 'date' :d['day'],# 日 'bweight' :d['wb'],# 運動前体重 'aweight' :d['wa'],# 運動後体重 'training' :d['contents'][0:10],# トレーニング内容 'period' :d['time'],# 運動時間 'intake' :d['moi'],# 飲水量 'dehydraterate':my_func.dassui_ritu(d['wb'], d['wa']),# 脱水率 'tenki' :str(tenki_dic[str(d['tenki'])]),# 天気 'shitsudo' :shitsudo,# 湿度 'temp' :temp,# 気温 'dassui1' :round(my_func.hakkann_ritu_ex1(d['wb'], d['wa'], d['time']), 1), 'necessary' :round(my_func.hakkann_ryo(d['wb'], d['wa'], d['moi']), 1), 'necessary1' :neccessary1_tmp, 'w1' :round(d['wb'] * 0.99, 1) }) if len(posts) > 0: latest = posts.pop(0) data = my_func.generateComment(latest) comment = data['sentence'] img = data['img'] else: latest = { 'date' :'今回', #日 'bweight' :'No data',# 運動前体重 'aweight' :'No data',# 運動後体重 'training' :'No data',# トレーニング内容 'period' :'No data',# 運動時間 'intake' :'No data',# 飲水量 'dehydraterate':'No data',# 脱水率 # 'dehydrateval' :'No data',# 脱水量 'tenki' :'No data',# 天気 'shitsudo' :'No data',# 湿度 'temp' :'No data', 'dassui1' :'No data', 'necessary' :'No data', 'necessary1' :'No data', 'w1' :'No data'} comment = '''初めまして。このアプリでは、 日々のトレーニング後の脱水量を記録していきます。 最初のデータを入力しましょう。 下の「データ入力」ボタンから結果を登録できます。 また、「アスリートのみなさんへ」は、 このアプリを利用している全員向けのコメントです。 ''' img = 'suzuki1.png' messages = my_func.sql_message_get( userid, userpass, max_messages = 3) texts = [] for d in messages: texts.append({ 'day' :d['day'], 'rname' :user_prof[d['userid']]['rname'], 'group' :d['group'], 'title' :d['title'], 'contents':d['contents'] } ) resp = make_response(render_template('main.html', title = 'taberube.jp', user = userid, posts = posts, latest = latest, comment = comment, texts = texts, img = img, rname = user_prof[userid]['rname'], serverhost = server_address)) resp.set_cookie('user', userid) resp.set_cookie('pass', userpass) return resp except Exception as error: sentence = ''' エラー: 結果の画面が取得できません。 SQLサーバーが停止している、または、 表データに不正な文字が含まれているため表示できません。 サーバー側に問題があるので、管理者にお問い合わせください。 (detail:'''+error.__str__()+')' return make_response(render_template('error.html', sentence=sentence))