def registUser(): if request.method == 'POST': #カテゴリとメイン項目を空欄では受け付けない if (len(request.json['user']) != 0 or len(request.json['password']) != 0): #requestで飛んできたカテゴリ、メイン、リンクを変数に格納 name = request.json['user'] password = request.text['password'] #memoListテーブルのセッションを作成 user = User() #格納した変数をそれぞれテーブルのレコードにセットする user.name = name user.passowrd = password #sessionのクエリを発行したので追加してコミットする session.add(User) session.commit() #mypageにレンダリング return render_template('mypage.html', name=session.name) else: #登録に失敗したらリダイレクト return redirect(url_for('/mypage'))
def mypage(): #postリクエストが飛んできたら if request.method == 'POST': #request内のユーザー名、パスワードを変数に格納 name = request.form['name'] password = request.form['password'] #userテーブルのセッションを作成 user = User() #nameカラムがnameのレコードを持ってくる users = session.query(User).\ filter(User.name == name).\ all() #27行目でsessionのクエリを発行したので追加してコミットする session.add(user) session.commit() #持ってきたレコードを順に見ていく for user in users: if (user.password == password): #passwordが合っているのが見つかったら、idとnameを session.name = name #mypageのHTMLをレンダリング return render_template('mypage.html', name=session.name) else: #合ってなかったら、ログイン失敗、リダイレクト return redirect(url_for('index'))
def registMemo(): if request.method == 'POST': #カテゴリとメイン項目を空欄では受け付けない if (len(request.form['category']) != 0 or len(request.form['main']) != 0): #requestで飛んできたカテゴリ、メイン、リンクを変数に格納 category = request.form['category'] main = request.form['main'] link = request.form['link'] #memoListテーブルのセッションを作成 memoList = MemoList() #格納した変数をそれぞれテーブルのレコードにセットする memoList.category = category memoList.main = main memoList.link = link #sessionのクエリを発行したので追加してコミットする session.add(memoList) session.commit() #mypageにレンダリング return render_template('mypage.html', name=session.name) else: #登録に失敗したらリダイレクト return redirect(url_for('/mypage'))
def add_new_record(user_id, game_id, rank, date): user_game_history = UserGameHistory() user_game_history.user_id = user_id user_game_history.game_id = game_id user_game_history.rank = rank user_game_history.date = date session.add(user_game_history) session.commit()
def set_strength_by_user_id(user_id, strength): user = session.query(User).filter( User.user_id == user_id).one_or_none() print(type(user), user) if user is None: user = User.add_new_user(user_id) user.strength = strength session.commit()
def add_new_user(user_id): try: user = User() user.id = user_id user.strength = INITIAL_RATING session.add(user) session.commit() return user except Exception as e: # TODO: エラーログ出力 print(e)
def offercomplete(): # 特徴量のデータ [1:脂肪を減らしたい2:筋肉を増やしたい, 1:お腹2:腹筋3:腹直筋,未知データ] feature = [[1, 1, 1], [1, 2, 5], [1, 3, 10], [2, 1, 3], [2, 2, 6], [2, 3, 8]] # 正解のデータ 1:脂肪:弱, 2:脂肪:中, 3:脂肪:強, 4:筋肉:弱, 5:筋肉:中, 6:筋肉:強 job = [1, 2, 3, 4, 5, 6] # 予測させるデータ 性別,部位,未知データ(トレーニング前後の体重差分) test_data = [[ request.args.get('sex'), request.args.get('part'), request.args.get('weightdifference') ]] # 学習 clf = svm.SVC(gamma="scale") clf.fit(feature, job) # 学習結果を設定 setno = clf.predict(test_data)[0] # ユーザ情報登録へINSERT session.add( UserRegistration(userid=request.args.get('userid'), sex=request.args.get('sex'), part=request.args.get('part'), age=request.args.get('age'), stature=request.args.get('stature'), beforeweight=request.args.get('beforeweight'), afterweight=request.args.get('afterweight'), trainingenddate=request.args.get('trainingenddate'), endflag="0", createdate=datetime.datetime.now(), updatedate=datetime.datetime.now())) session.commit() # トレーニング実施状況へINSERT session.add( TrainingStatus(userid=request.args.get('userid'), setno=int(setno), traning1status=0, traning2status=0, traning3status=0, endflag="0", createdate=datetime.datetime.now(), updatedate=datetime.datetime.now())) session.commit() # トレーニング実施画面の値設定 tryView(userInfoBase['personaltrainar']['userid'], userInfoBase) return jsonify(userInfoBase)
def history(): if request.method == "POST": contest_ID = request.form["del"] contest_ID = int(contest_ID) print(contest_ID) session.query( pm.Problem).filter(pm.Problem.contestID == contest_ID).delete() session.commit() print("delete finish.") contests = session.query(pm.Problem.contest,pm.Problem.contestID,pm.Problem.start_time,pm.Problem.end_time)\ .distinct(pm.Problem.contest).order_by(desc(pm.Problem.contestID)).all() return render_template("history.html", cont=contests)
def modify(contestID): contest_ID = contestID print("modify contest page.") if request.method == "GET": contents = session.query( pm.Problem).filter(pm.Problem.contestID == contest_ID).all() return render_template("modify.html", cont=contents) else: print("modify this contest.") session.query( pm.Problem).filter(pm.Problem.contestID == contest_ID).delete() session.commit() contest_name = request.form["contest_name"] start_date = request.form["start_date"] start_time = request.form["start_time"] end_date = request.form["end_date"] end_time = request.form["end_time"] problems_url = request.form.getlist("problem_url") pr = session.query(pm.Problem).all() for url in problems_url: if len(url) == 0: continue pr = pm.Problem() pr.problemURL = url pr.problem = url.split('/')[5] + url.split('/')[6] pr.contest = contest_name pr.contestID = contest_ID pr.participant = "springroll" pr.start_time = start_date + " " + start_time + ":00" pr.end_time = end_date + " " + end_time + ":00" pr.penalty = 0 pr.last_updated = start_date + " " + start_time + ":00" print(url) session.add(pr) session.commit() return redirect(url_for('contest', contestID=contest_ID))
def createContest(): print("create contest page.") if request.method == "GET": return render_template("create.html") else: contest_name = request.form["contest_name"] start_date = request.form["start_date"] start_time = request.form["start_time"] end_date = request.form["end_date"] end_time = request.form["end_time"] problems_url = request.form.getlist("problem_url") pr = session.query(pm.Problem).all() res_mx = session.query( func.max(pm.Problem.contestID).label("max_contestid")).one() max_contestID = res_mx.max_contestid print(max_contestID) max_contestID += 1 for url in problems_url: pr = pm.Problem() pr.problemURL = url pr.problem = url.split('/')[5] + url.split('/')[6] pr.contest = contest_name pr.contestID = max_contestID pr.participant = "springroll" pr.start_time = start_date + " " + start_time + ":00" pr.end_time = end_date + " " + end_time + ":00" pr.penalty = 0 pr.last_updated = start_date + " " + start_time + ":00" session.add(pr) session.commit() print(pr.contestID) return redirect(url_for('contest', contestID=max_contestID))
from setting import session from user import * user = User() user.name = '太郎' user.age = '20' user.email = '*****@*****.**' users = session.add(user) session.commit() users = session.query(User).all() for user in users : print(user.name)
def contest(contestID): contest_ID = contestID print("Getting Submmision data...") sub_data = getSubmissionInfo() print(" -> Finish.") crt = time.time() loc = datetime.fromtimestamp(crt) last_updateds = session.query(pm.Problem.last_updated).filter( pm.Problem.contestID == contest_ID).all() if len(last_updateds) == 0: return redirect(url_for('history')) last_max = "1997-12-03 00:00:00" for last_update in last_updateds: lustr = last_update[0].strftime('%Y-%m-%d %H:%M:%S') if last_max < lustr: last_max = lustr print(last_max) start_t = session.query(pm.Problem.start_time).filter( pm.Problem.contestID == contest_ID).first() print(start_t) start_epoch = int(start_t[0].timestamp()) for sub in sub_data: sub_epochtime = sub["creationTimeSeconds"] sub_time = datetime.fromtimestamp(sub_epochtime) sub_time = sub_time.strftime('%Y-%m-%d %H:%M:%S') if sub_time > last_max: print(sub_time) problem = str(sub["contestId"]) + sub["problem"]["index"] update_pr = session.query(pm.Problem).filter( pm.Problem.contestID == contest_ID, pm.Problem.problem == problem).first() if update_pr is None: continue print(update_pr) for key, value in sub.items(): print(str(key) + " " + str(value)) if sub["passedTestCount"] == 0: continue update_pr.last_updated = loc if sub["verdict"] == "OK": ac_diff = sub_epochtime - start_epoch ac_tm = "{:02}:{:02}".format(ac_diff // 60, ac_diff % 60) update_pr.ac_time = ac_tm else: update_pr = session.query(pm.Problem).filter( pm.Problem.contestID == contest_ID, pm.Problem.problem == problem).first() update_pr.penalty = update_pr.penalty + 1 session.commit() content = session.query( pm.Problem).filter(pm.Problem.contestID == contest_ID).all() max_time = 0 sum_penalty = 0 for con in content: if con.ac_time is not None: max_time = max( max_time, int(con.ac_time.split(':')[0]) * 60 + int(con.ac_time.split(':')[1])) sum_penalty += con.penalty max_time = "{:02}:{:02}".format(max_time // 60, max_time % 60) print("Complete.") return render_template('contest.html', cont=content, sum_time=max_time, sum_penalty=sum_penalty)
def implementationinput(): if strtobool(request.args.get('training1')) and strtobool( request.args.get('training2')) and strtobool( request.args.get('training3')): # ユーザー登録情報の更新 userRegistration = userRegistrationUpdate(request.args.get('userid')) # ユーザー情報.トレーニング実施完了フラグに"1:削除"を設定 userRegistration.endflag = "1" # ユーザー情報.更新日時に現在日時を設定 userRegistration.updatedate = datetime.datetime.now() # トレーニング実施状況の更新 trainingStatus = TrainingStatusUpdate(request.args.get('userid')) # トレーニング実施状況.トレーニングnに"2:完了"を設定 trainingStatus.traning1status = "2" trainingStatus.traning2status = "2" trainingStatus.traning3status = "2" # トレーニング実施状況.トレーニング実施完了フラグに"1:削除"を設定 trainingStatus.endflag = "1" # トレーニング実施状況.更新日時に現在日時を設定 trainingStatus.updatedate = datetime.datetime.now() session.commit() return "hello" else: # チェックボックス1がチェック有の場合 if strtobool(request.args.get('training1')): # トレーニング実施状況の更新 trainingStatus = TrainingStatusUpdate(request.args.get('userid')) # トレーニング実施状況.トレーニング1に"2:完了"を設定 trainingStatus.traning1status = "2" # トレーニング実施状況.更新日時に現在日時を設定 trainingStatus.updatedate = datetime.datetime.now() session.commit() else: # トレーニング実施状況の更新 trainingStatus = TrainingStatusUpdate(request.args.get('userid')) # トレーニング実施状況.トレーニング1に"0:未着手"を設定 trainingStatus.traning1status = "0" # トレーニング実施状況.更新日時に現在日時を設定 trainingStatus.updatedate = datetime.datetime.now() session.commit() # チェックボックス2がチェック有の場合 if strtobool(request.args.get('training2')): # トレーニング実施状況の更新 trainingStatus = TrainingStatusUpdate(request.args.get('userid')) # トレーニング実施状況.トレーニング2に"2:完了"を設定 trainingStatus.traning2status = "2" # トレーニング実施状況.更新日時に現在日時を設定 trainingStatus.updatedate = datetime.datetime.now() session.commit() else: # トレーニング実施状況の更新 trainingStatus = TrainingStatusUpdate(request.args.get('userid')) # トレーニング実施状況.トレーニング2に"0:未着手"を設定 trainingStatus.traning2status = "0" # トレーニング実施状況.更新日時に現在日時を設定 trainingStatus.updatedate = datetime.datetime.now() session.commit() # チェックボックス3がチェック有の場合 if strtobool(request.args.get('training3')): # トレーニング実施状況の更新 trainingStatus = TrainingStatusUpdate(request.args.get('userid')) # トレーニング実施状況.トレーニング3に"2:完了"を設定 trainingStatus.traning3status = "2" # トレーニング実施状況.更新日時に現在日時を設定 trainingStatus.updatedate = datetime.datetime.now() session.commit() else: # トレーニング実施状況の更新 trainingStatus = TrainingStatusUpdate(request.args.get('userid')) # トレーニング実施状況.トレーニング3に"0:未着手"を設定 trainingStatus.traning3status = "0" # トレーニング実施状況.更新日時に現在日時を設定 trainingStatus.updatedate = datetime.datetime.now() session.commit() return "hello"