def todo_index(): sql = 'select t.*, c.name from todo as t left outer join category as c ' \ 'on t.category_id = c.id;' todos = session.query(Todo).all() categories = session.query(Category).all() dts = session.query(Todo, Category).outerjoin( Category, Category.id == Todo.category_id).order_by(text('todo.id')).all() return render_template('todo/index.html', todos=todos, categories=categories, dts=dts)
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 tryView(userid, userInfoBase): users = session.query(UserRegistration, TrainingStatus, Mitem, Mitemset). \ filter(UserRegistration.userid == userid). \ filter(UserRegistration.endflag == "0"). \ filter(UserRegistration.userid == TrainingStatus.userid). \ filter(TrainingStatus.endflag == "0"). \ filter(Mitemset.setno == TrainingStatus.setno). \ filter(or_(Mitemset.traning1 == Mitem.traningseq, Mitemset.traning2 == Mitem.traningseq, Mitemset.traning3 == Mitem.traningseq, )). \ all() for user in users: if user.Mitem.traningseq == user.Mitemset.traning1: userInfoBase['mitem']['traning1'][ 'mtraningname'] = user.Mitem.menuname userInfoBase['mitem']['traning1']['mtraningnum'] = str( user.Mitem.numberoftimes) userInfoBase['traningstuts']['traning1stuts'] = checkBoxStatus( user.TrainingStatus.traning1status) if user.Mitem.traningseq == user.Mitemset.traning2: userInfoBase['mitem']['traning2'][ 'mtraningname'] = user.Mitem.menuname userInfoBase['mitem']['traning2']['mtraningnum'] = str( user.Mitem.numberoftimes) userInfoBase['traningstuts']['traning2stuts'] = checkBoxStatus( user.TrainingStatus.traning2status) if user.Mitem.traningseq == user.Mitemset.traning3: userInfoBase['mitem']['traning3'][ 'mtraningname'] = user.Mitem.menuname userInfoBase['mitem']['traning3']['mtraningnum'] = str( user.Mitem.numberoftimes) userInfoBase['traningstuts']['traning3stuts'] = checkBoxStatus( user.TrainingStatus.traning3status)
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 get_strength_by_user_id(user_id): strength = session.query( User.strength).filter(User.user_id == user_id).one_or_none() if strength is None: User.add_new_user(user_id) return INITIAL_RATING else: return strength[0]
def userRegistrationUpdate(userid): # ユーザ登録情報の更新 userRegistrationquery = session.query(UserRegistration) userRegistration = userRegistrationquery.filter(UserRegistration.userid == userid). \ filter(UserRegistration.endflag == "0"). \ first() return userRegistration
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 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 TrainingStatusUpdate(userid): trainingStatusquery = session.query(TrainingStatus) trainingStatus = trainingStatusquery.filter(UserRegistration.userid == userid). \ filter(UserRegistration.endflag == "0"). \ filter(UserRegistration.userid == TrainingStatus.userid). \ filter(TrainingStatus.endflag == "0"). \ first() return trainingStatus
def userRegistrationSelect(userid, userInfoBase): users = session.query(UserRegistration). \ filter(UserRegistration.userid == userid). \ filter(UserRegistration.endflag == "0"). \ all() for user in users: # jsonユーザー情報.ユーザー情報.トレーニング実施完了フラグを設定 userInfoBase['personaltrainar']['userid'] = user.userid # jsonユーザー情報.トレーニング実施完了フラグを設定 userInfoBase['referenceResultFlag'] = True
def getAllMemo(): #memoListセッションを作成 memoList = MemoList() #memoListテーブルの全レコードを持ってくる result = session.query(MemoList).all() #list型のresultをjsonにダンプ result = json.dumps(result, cls=AlchemyEncoder) #resultをリターンする-->Javascriptのajaxのresponseに入る return result
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))
def getUser(): #memoListセッションを作成 user = User() #memoListテーブルの全レコードを持ってくる result = session.query(User).\ filter(User.id > 10).\ all() #list型のresultをjsonにダンプ result = json.dumps(result, cls=AlchemyEncoder) #resultをリターンする-->Javascriptのajaxのresponseに入る return result
#!/usr/bin/python3 from setting import session from zaiko import * from uriage import * from datetime import datetime date = datetime.today() zaiko = session.query(Zaiko).all() def prin(): print('------') sum = 0 kago = [] count = [] k = {} while True: prin() for tmp in zaiko: print( str(tmp.product_id) + ':', str(tmp.product_name), str(tmp.tanka) + 'yen') prin() num = input('input product_number:') nums = input('input product_quantity:') num = int(num)
def index(): users = session.query(User).all() addresses = session.query(Address).all() dts = session.query(User, Address).outerjoin(Address, User.id==Address.user_id).all() return render_template('home/index.html', users=users, addresses=addresses, dts=dts)
# -*- coding: utf-8 -*- from sqlalchemy.sql import func # セッション変数の取得 from setting import session from cloud import * max_id = session.query(func.max(Cloud.id)).scalar() print(max_id) cloud_img_path = session.query( Cloud.img_path).filter(Cloud.id == max_id).scalar() print(cloud_img_path)
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)