def get_rule(trash_name): response = dict() try: # full match trashes = db_session.query(Trash).filter(Trash.name==trash_name) if trashes.count()!=1: search_name = '%' + trash_name # 後方一致 trashes = db_session.query(Trash).filter(Trash.name.like(search_name)).limit(10) if trashes.count()>=1: trash_list = [] for trash in trashes: trash_dic = dict() trash_dic["trash_name"] = trash.name categories = [] for rule in trash.throw_rules: rule_dic = dict() rule_dic['id'] = rule.category.category_id rule_dic['category_name'] = rule.category.name categories.append(rule_dic) trash_dic["categories"] = categories trash_dic["detail"] = trash.detail trash_list.append(trash_dic) response["result"] = trash_list response["code"] = 200 else: response = error_message(204) except: response = error_message(204) return jsonify(response)
def edit_update(title): if ("name" in session): if (not session["name"] == None): app.add_template_global(name="status", f="login") post = db_session.query(BlogContent).filter_by(title=title).first() if post: if (request.form["title"]) and (request.form["body"]): new_title = request.form["title"] new_body = request.form["body"] if (title == new_title): post.body = new_body db_session.commit() return redirect(url_for("post", title=title)) else: post_check = db_session.query(BlogContent).filter_by( title=new_title).first() if post_check: message = new_title + "は既に使われています" return render_template("edit_post.html", post=post_check, message=message) else: post.title = new_title post.body = new_body db_session.commit() return redirect(url_for("post", title=new_title)) else: return redirect(url_for("edit", title=title)) else: return redirect(url_for("index")) else: return redirect(url_for("login"))
def monthly_point_ranking_json(): try: # とりあえず全ユーザー送る # monthly_pointsの降順でソート users = db_session.query(User.user_id, User.name, User.total_badges).all() user_list = [] for user in users: user_id, name, total_badges = user user_point_history = PointUser.query.filter( PointUser.user_id == user_id).all() points = 0 for data in user_point_history: if (int(data.get_date[5:7]) == datetime.datetime.now().month): points += data.point user_list.append((user_id, name, total_badges, points)) user_list.sort(key=lambda x: x[3], reverse=True) result_list = [] for user in user_list: user_id, name, total_badges, monthly_points = user user_dic = { 'user_id': user_id, 'name': name, 'badge': total_badges, 'point': monthly_points, } # [{user_id, name, badge, point}, {user_id, name, badge, point}, {…}]のようにレスポンス result_list.append(user_dic) return jsonify(results=result_list) except Exception as e: abort(404, {'code': 'Not found', 'message': str(e)})
def meal_ranking_json(): try: # CookHistoryから人気料理ランキングを取得 # 各meal_idをcountして個数の降順でソート # meal_idからmeal_nameを取得 import collections hists = db_session.query(CookHistory.meal_id).all() hists = list(collections.Counter(hists).items()) hists.sort(key=lambda x: x[1], reverse=True) count_list = [] for hist in hists: meal_id, count = hist meal_id = meal_id[0] if meal_id is None: continue meal_name = MealContent.query.filter( MealContent.meal_id == meal_id).all()[0].name count_dic = { 'meal_id': meal_id, 'meal_name': meal_name, 'count': count, } count_list.append(count_dic) return jsonify(results=count_list) except Exception as e: abort(404, {'code': 'Not found', 'message': str(e)})
def index(page=1): invoice_list, page_context = cloud_accounting.get_invoice_list(page) json.dumps(invoice_list) printed_invoices = set( [f.zoho_id for f in db_session.query(Factura).all()]) return render_template('index.html', invoices=invoice_list, printed=printed_invoices, page_context=page_context)
def add_post(): if ("name" in session): if (not session["name"] == None): app.add_template_global(name="status", f="login") if (request.form["title"]) and (request.form["body"]): title = request.form["title"] body = request.form["body"] check_title = db_session.query(BlogContent).filter_by( title=title).first() if check_title: message = title + "は既に使われています" return render_template("add_post.html", message=message, title=title, body=body) else: post_data = BlogContent(title, body) db_session.add(post_data) db_session.commit() return redirect(url_for("post", title=title)) else: if request.form["title"]: return render_template("add_post.html", title=request.form["title"]) if request.form["body"]: return render_template("add_post.html", body=request.form["body"]) if (not request.form["title"]) and (not request.form["body"]): return redirect(url_for("add")) else: return redirect(url_for("login"))
def followee_total_point_ranking_json(): try: # total_pointsの降順でソート # user_id = 2 # とりあえず2 user_id = get_user_id() flwee = [user_id] flwee_raw = UserRelation.query.filter( UserRelation.follower_id == user_id).all() for f in flwee_raw: flwee.append(f.followed_id) # この時点でflwee = [2,1] flwee = db_session.query(User).filter(User.user_id.in_(flwee)).all() flwee_users = [] for user in flwee: flwee_users.append((user.user_id, user.name, user.total_badges, user.total_points)) flwee_users.sort(key=lambda x: x[3], reverse=True) user_list = [] for user in flwee_users: user_id, name, total_badges, total_points = user user_dic = { 'user_id': user_id, 'name': name, 'badge': total_badges, 'point': total_points, } # [{user_id, name, badge, point}, {user_id, name, badge, point}, {…}]のようにレスポンス user_list.append(user_dic) return jsonify(results=user_list) except Exception as e: abort(404, {'code': 'Not found', 'message': str(e)})
def delete(title): if ("name" in session): if (not session["name"] == None): app.add_template_global(name="status", f="login") post_check = db_session.query(BlogContent).filter_by( title=title).first() if post_check: post = db_session.query(BlogContent).filter_by( title=title).first() db_session.delete(post) db_session.commit() return redirect(url_for("index")) else: return redirect(url_for("index")) else: return redirect(url_for("login"))
def index(): # if ("name" in session): # if (not session["name"] == None): # app.add_template_global(name="status",f="login") # else: app.add_template_global(name="status", f="n") posts = db_session.query(BlogContent).order_by(BlogContent.id.desc()) return render_template("index.html", posts=posts)
def rate(self, request): rating = request.form.get('rate') ratingText = request.form.get('text') ratingText = None if ratingText == '' else ratingText db_session.add(ShopRatings(rating, ratingText)) db_session.commit() self.avg_rating = db_session.query( func.avg(ShopRatings.rating).label('average')).first().average return jsonify(status='success')
def index(): if "user_name" in session: name = session["user_name"] #all_contents = db_session.query(PaperContent.title_en, PaperContent.date).all() latest = db_session.query(func.max(PaperContent.date), PaperContent.url).all() #最新日付とそのURLを取得 latest_contents = db_session.query( PaperContent.title_en, PaperContent.title_jp, PaperContent.abst_en, PaperContent.abst_jp, PaperContent.date, PaperContent.id, PaperContent.prob, PaperContent.sol, PaperContent.app, PaperContent.prob_est, PaperContent.sol_est, PaperContent.app_est).filter(PaperContent.url == latest[0] [1]).all() #最新URLと同じURLをDBから引っ張ってくる return render_template("index.html", name=name, all_contents=latest_contents) else: return redirect(url_for("top"))
def login_check(): name = request.form["name"] password = request.form["password"] user = db_session.query(Users).filter_by(name=name, password=password).first() if user: session["name"] = name return redirect(url_for("index")) else: return render_template("login.html", message="NameまたはPasswordが違います")
def post(title): if ("name" in session): if (not session["name"] == None): app.add_template_global(name="status", f="login") else: app.add_template_global(name="status", f="n") post_data = db_session.query(BlogContent).filter_by(title=title).first() if post_data: return render_template("post.html", post=post_data) else: return render_template("notfound.html")
def patch_comments_edit(comment_id): comment = db_session.query(Comments).filter( Comments.id == comment_id).first() comment.content = request.form['content'] db_session.add(comment) db_session.commit() return jsonify({ 'id': comment.id, 'question_id': comment.question_id, 'content': comment.content, })
def show_stock(family_id): res = {"twi_link": "", "twi_img": ""} s = db_session.query(Stocks).filter(Stocks.family_id == family_id).first() if s: res["twi_link"] = s.twi_link res["twi_img"] = s.twi_img else: res["twi_link"] = "nothing" res["twi_img"] = "nothing" return res
def edit(title): if ("name" in session): if (not session["name"] == None): app.add_template_global(name="status", f="login") post_check = db_session.query(BlogContent).filter_by( title=title).first() if post_check: return render_template("edit_post.html", post=post_check) else: return redirect(url_for("index")) else: return redirect(url_for("login"))
def learn(): #全データをDBから吸い出し all_data = db_session.query(PaperContent.abst_en, PaperContent.prob, PaperContent.sol, PaperContent.app).all() #ML.pyのlearning関数へ引き渡し、前処理、学習、モデルの保存 model_score = learning(all_data) print("モデルの各カテゴリの精度は" + str(model_score) + "です。") # # return redirect(url_for("index"))
def delete_stock(): # return jsonify(dict(request.headers)) # family_id = request.form.get('family_id') f = request.get_data() form_data = json.loads(f.decode('utf-8')) family_id = form_data['family_id'] s = db_session.query(Stocks).filter(Stocks.family_id == family_id).first() db_session.delete(s) db_session.commit() return show_stock(family_id)
def show(family_id): with open('responses/config.json', mode="r", buffering=-1, encoding='utf-8') as f: res = json.loads(f.read()) all_family_member = db_session.query(Affiliation).filter( Affiliation.family_id == family_id).all() for m in all_family_member: res['twi_id'].append(m.twi_id) return jsonify(res)
def reset(): if request.method == "POST": reset = request.form["reset"] if reset == "reset": db_session.query(Teacher).delete() db_session.query(Lecture).delete() db_session.query(Review).delete() db_session.commit() return redirect(url_for("teachers"))
def deltee_config(): f = request.get_data() form_data = json.loads(f.decode('utf-8')) print("\n\n\n", form_data) family_id = form_data['family_id'] twi_id = form_data['twi_id'] a = db_session.query(Affiliation).filter( Affiliation.family_id == family_id).all() for m in a: if m.twi_id == twi_id: db_session.delete(m) db_session.commit() return show(family_id)
def followee_monthly_point_ranking_json(): try: # とりあえず全ユーザー送る # monthly_pointsの降順でソート # user_id = 2 # とりあえず2 user_id = get_user_id() flwee = [user_id] flwee_raw = UserRelation.query.filter( UserRelation.follower_id == user_id).all() for f in flwee_raw: flwee.append(f.followed_id) # この時点でflwee = [2,1] flwee = db_session.query(User).filter(User.user_id.in_(flwee)).all() flwee_users = [] for user in flwee: flwee_users.append((user.user_id, user.name, user.total_badges)) user_list = [] for user in flwee_users: user_id, name, total_badges = user user_point_history = PointUser.query.filter( PointUser.user_id == user_id).all() points = 0 for data in user_point_history: if (int(data.get_date[5:7]) == datetime.datetime.now().month): points += data.point user_list.append((user_id, name, total_badges, points)) user_list.sort(key=lambda x: x[3], reverse=True) result_list = [] for user in user_list: user_id, name, total_badges, monthly_points = user user_dic = { 'user_id': user_id, 'name': name, 'badge': total_badges, 'point': monthly_points, } # [{user_id, name, badge, point}, {user_id, name, badge, point}, {…}]のようにレスポンス result_list.append(user_dic) return jsonify(results=result_list) except Exception as e: abort(404, {'code': 'Not found', 'message': str(e)})
def throw_rule(trash_name): response = dict() try: trash = db_session.query(Trash).filter(Trash.name==trash_name).first() categories = [] for rule in trash.throw_rules: tmp = dict() tmp['id'] = rule.category.category_id tmp['name'] = rule.category.name categories.append(tmp) rule = dict() rule['categories'] = categories rule['detail'] = trash.detail response["rule"] = rule response["code"] = 200 except: response = error_message(204) return jsonify(response)
def add_record(record): time = datetime.now() trash_list = [record[GARBAGE_NAME]] if record[SIMILAR_WORDS] != "": trash_list.extend(record[SIMILAR_WORDS].split(' ')) if record[OTHER_RULE] != "": category_list = [record[RULE], record[OTHER_RULE]] else: category_list = [record[RULE]] for trash_name in trash_list: # register trash trash = Trash() trash.name = trash_name trash.detail = record[HOW_TO] trash.created_at = time trash.updated_at = time db_session.add(trash) db_session.commit() # insert categories and throw_rules for category_name in category_list: category = db_session.query(Category).filter_by( name=category_name).first() if (category is None): category = Category() category.name = category_name category.created_at = time category.updated_at = time db_session.add(category) db_session.commit() throw_rule = ThrowRule() throw_rule.trash_id = trash.trash_id throw_rule.category_id = category.category_id throw_rule.created_at = time throw_rule.updated_at = time db_session.add(throw_rule) db_session.commit()
def total_point_ranking_json(): try: # とりあえず全ユーザー送る # total_pointsの降順でソート users = db_session.query(User.user_id, User.name).all() #users.sort(key=lambda x: x[3], reverse=True) user_list = [] for user in users: user_id, name = user user_dic = { 'user_id': user_id, 'name': name, 'badge': 0, 'point': 0, } # [{user_id, name, badge, point}, {user_id, name, badge, point}, {…}]のようにレスポンス user_list.append(user_dic) return jsonify(results=user_list) except Exception as e: abort(404, {'code': 'Not found', 'message': str(e)})
def get_favorites(family_id): with open('responses/get_favorites.json', mode="r", buffering=-1, encoding='utf-8') as f: res = json.loads(f.read()) twi_ids = [] all_family_member = db_session.query(Affiliation).filter( Affiliation.family_id == family_id).all() for m in all_family_member: twi_ids.append(m.twi_id) for twi_id in twi_ids: favorite_tweets = get_favorite_tweets(twi_id) hash = collect_favorite_img_tweet(favorite_tweets) # hash = store_cash(favorite_tweets) res["res"].extend(hash) return jsonify(res)
def getCurrData(): users = db_session.query(SensorCurrent).first() j = users.j_merged_num z = users.z_merged_num date = datetime.now() print(j, z, date) data = SensorCurrent(j ,z , date) db_session.add(data) db_session.commit() db_session.close() people = SensorCurrent.query.first() json_data = { 'j_merged_num': people.j_merged_num, 'z_merged_num': people.z_merged_num } print(json_data) return jsonify(Result=json.dumps(json_data))
def update(): # family_id = request.form['family_id'] # twi_id = request.form['twi_id'] f = request.get_data() form_data = json.loads(f.decode('utf-8')) print("\n\n\n", form_data) family_id = form_data['family_id'] twi_id = form_data['twi_id'] all_family_member = db_session.query(Affiliation).filter( Affiliation.family_id == family_id).all() for m in all_family_member: if m.twi_id == twi_id: return jsonify({"res": "already twi_id used"}) a_object = Affiliation(family_id=family_id, twi_id=twi_id) db_session.add(a_object) db_session.commit() return show(family_id)
def stock(): # family_id = request.form['family_id'] # twi_link = request.form['twi_link'] f = request.get_data() form_data = json.loads(f.decode('utf-8')) family_id = form_data['family_id'] twi_link = form_data['twi_link'] twi_img = form_data['twi_img'] s = db_session.query(Stocks).filter(Stocks.family_id == family_id).first() if not s: s_object = Stocks(family_id=family_id, twi_link=twi_link, twi_img=twi_img) db_session.add(s_object) db_session.commit() else: s.twi_link = twi_link s.twi_img = twi_img db_session.commit() return show_stock(family_id)
def weekly_meal_ranking_json(): try: # CookHistoryから人気料理ランキングを取得 # 各meal_idをcountして個数の降順でソート # meal_idからmeal_nameを取得 import collections hists = db_session.query(CookHistory.meal_id, CookHistory.post_id).all() meal_list = [] for hist in hists: meal_id, post_id = hist if post_id is None or meal_id is None: continue create_at = Post.query.filter( Post.post_id == post_id).all()[0].create_at d_create_at = datetime.date(year=int(create_at[:4]), month=int(create_at[5:7]), day=int(create_at[8:10])) if abs(datetime.date.today() - d_create_at).days < 7: meal_list.append(meal_id) hists = list(collections.Counter(meal_list).items()) hists.sort(key=lambda x: x[1], reverse=True) count_list = [] for hist in hists: meal_id, count = hist meal_name = MealContent.query.filter( MealContent.meal_id == meal_id).all()[0].name count_dic = { 'meal_id': meal_id, 'meal_name': meal_name, 'count': count, } count_list.append(count_dic) return jsonify(results=count_list) except Exception as e: abort(404, {'code': 'Not found', 'message': str(e)})