def admin_latest(): admin = request.cookies.get('user') adminpass = request.cookies.get('pass') if admin == '' or adminpass == '': sentence = 'ログアウトしています。' index = render_template('error.html', sentence = sentence) return make_response(index) if not (my_func.admin_coach_kakunin(admin, adminpass)): sentence = '初めからやり直してください。' index = render_template('error.html', sentence = sentence) return make_response(index) try: user_prof = my_func.sql_ALLuser_profile() try: data = my_func.sql_data_get_latest_all(user_prof[admin]['type'], user_prof[admin]['org']) 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']),#脱水率 'necessary' :round(my_func.hakkann_ryo(d['wb'], d['wa'], d['moi']), 1), 'tenki' :tenki_dic[str(d['tenki'])],#天気 'shitsudo' :shitsudo,#湿度 'temp' :temp, 'username' :user_prof[d['username']]['rname'], 'w1' :round(d['wb']*0.99,1), 'necessary1' :neccessary1_tmp}# ユーザの本名 ) posts = reversed(sorted(posts, key=lambda x:x['date'])) index = render_template('admin_latest.html', title = 'taberube.jp', posts = posts, serverhost = server_address) return make_response(index) except Exception as error: sentence = 'ERROR1: ' + error.__str__() index = render_template('error.html', sentence = sentence) return make_response(index) except Exception as error: sentence = 'ERROR2: '+error.__str__() index = render_template('error.html', sentence = sentence) return make_response(index)
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 admin_watch_show(): admin = request.cookies.get('user')# クッキーを保存 adminpass = request.cookies.get('pass')# クッキーを保存 if not(my_func.admin_coach_kakunin(admin, adminpass)): sentence = '初めからやり直してください。' index = render_template('error.html', sentence = sentence) return make_response(index) try: user_prof = my_func.sql_ALLuser_profile() uid_get = request.args.get('name')# 見たいユーザ名 real_name = user_prof[uid_get]['rname']# ユーザの本名 if user_prof[admin]['type'] == 2 and user_prof[admin]['org'] != user_prof[uid_get]['org']: sentence = '機能制限: このユーザーのデータは閲覧できません。' index = render_template('error.html', sentence = sentence) return make_response(index) data = my_func.sql_data_get(uid_get) posts = [] for d in reversed(data):# 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']),#脱水率 'necessary' :round(my_func.hakkann_ryo(d['wb'], d['wa'], d['moi']), 1), 'tenki' :tenki_dic[str(d['tenki'])],#天気 'shitsudo' :shitsudo,#湿度 'temp' :temp, 'w1' :round(d['wb']*0.99,1), 'necessary1' :neccessary1_tmp }) index = render_template('admin_show.html', title = 'taberube.jp', user = real_name, posts = posts, userid = uid_get, serverhost = server_address) resp = make_response(index) resp.set_cookie('user', admin)# クッキーの再設定 resp.set_cookie('pass', adminpass)# クッキーの再設定 return resp except Exception as error:# SQLなどのエラー sentence = 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))