def add_entry():  # 記事を新しく追加
    entry = Entry(id=int(datetime.now().timestamp()),
                  title=request.form['title'],
                  text=request.form['text'])
    entry.save()
    flash('新しく記事が作成されました')
    return redirect(url_for('show_entries'))
Esempio n. 2
0
def add_entry():
    #新規モデル(レコード)をデータベースに登録
    entry = Entry(
        id=int(datetime.now().timestamp()),
        title=request.form['title'],  #属性=カラム
        text=request.form['text'])
    entry.save()
    flash('新しく記事が作成されました')
    return redirect(url_for('show_entries'))  #登録後はリダイレクト
Esempio n. 3
0
def show_entries():
    # 全件検索
    # entries = Entry.scan()
    # 条件指定(キーを指定せずに検索)
    # entries = Entry.scan(Entry.MeasureDateTime.contains('20201123'))

    # 1日前の時間表記(yyyyMMddhhmmss)を取得する
    yesterday = (datetime.now(timezone(timedelta(hours=+9), 'JST')) -
                 timedelta(days=1)).strftime('%Y%m%d%H%M%S')

    # 1日前までのデータをDynamoDBより取得する
    entries = Entry.scan(Entry.MeasureDateTime >= yesterday)
    # 条件指定(キーを指定してから検索)
    # entries = Entry.query("aaa", Entry.MeasureDateTime.contains('20201123'))
    entries = sorted(entries, key=lambda x: x.MeasureDateTime)
    #entries = sorted(entries, key=lambda x: x.MeasureDateTime, reverse=True)

    for entry in entries:
        try:
            entry.MeasureDateTimeStr = parse(
                entry.MeasureDateTime).strftime('%m/%d %H:%M')
        except:
            entry.MeasureDateTimeStr = "時間不明"

    return render_template('index.html', entries=entries)
def update_entry(id):  # 記事の更新
    entry = Entry.get(id)
    entry.title = request.form['title']
    entry.text = request.form['text']
    entry.save()
    flash('記事が更新されました')
    return redirect(url_for('show_entries'))
Esempio n. 5
0
def add_entry():
    entry = Entry(title=request.form['title'], text=request.form['text'])

    db.session.add(entry)
    db.session.commit()
    flash('新しい記事が投稿されました')
    return redirect(url_for('entry.show_entries'))
Esempio n. 6
0
def update_entry(id):
    entry = Entry.get(id)  #記事を取得
    entry.title = request.form['title']  #属性を指定して直接代入して値を更新
    entry.text = request.form['text']
    entry.save()
    flash('記事が更新されました')
    return redirect(url_for('show_entries'))
Esempio n. 7
0
def add_entry():
    # request.formでフォームのデータを受け取れる nameを指定する
    req = json.loads(request.get_data())
    entry = Entry(title=req.get("title"), text=req.get("text"))
    db.session.add(entry)  # addしてcommitすることでデータベースに変更を行える
    db.session.commit()
    return Response(status=201)
Esempio n. 8
0
def add_entry():
    entry = Entry(
        title=request.form['title'],
        text=request.form['text'])  # 送られてきた記事タイトル都内容についてのモデルインスタンスを作成。
    db.session.add(entry)  # 作成されたモデルインスタンスに対して、これらの処理を行う事で新しい記事内容をデータベースに保存。
    db.session.commit()
    flash('新しく記事が作成されました')
    return redirect(url_for('entry.show_entries'))
Esempio n. 9
0
def add_entry():
    if not session.get('logged_in'):
        return redirect(url_for('login'))
    entry = Entry(title=request.form['title'], text=request.form['text'])
    db.session.add(entry)
    db.session.commit()
    flash('新しい記事が作成されました')
    return redirect(url_for('show_entries'))
Esempio n. 10
0
def add_entry():
    # Entryモデルインスタンスを作成してINSERT対象カラムにリクエストで受け取った値を代入する
    entry = Entry(title=request.form['title'], text=request.form['text'])
    # DBにINSERTする
    db.session.add(entry)
    db.session.commit()
    flash('新しく記事が作成されました')
    return redirect(url_for('entry.show_entries'))
Esempio n. 11
0
def add_entry():
    if not session.get('logged_in'):
        return redirect(url_for('login'))
    entry = Entry(title=request.form['title'], text=request.form['text'])
    db.session.add(entry)
    db.session.commit()
    flash('A new article has been created.')
    return redirect(url_for('show_entries'))
Esempio n. 12
0
def add_entry():
    entry = Entry(
        title=request.form['title'],
        text=request.form['text']
    )
    db.session.add(entry)
    db.session.commit()
    flash('A new article has been created.')
    return redirect(url_for('entry.show_entries'))
Esempio n. 13
0
def add_entry():
    # if not session.get('logged_in'):
    #     return redirect(url_for('login'))
    # entriesモデルのインスタンスをformからの値を元に生成
    entry = Entry(title=request.form['title'], text=request.form['text'])
    db.session.add(entry)
    db.session.commit()
    flash('新しく記事が作成されました')
    return redirect(url_for('entry.show_entries'))
Esempio n. 14
0
 def test_entry_repr(self):
     entry = Entry(
         title='おもち',
         text='おもちもちお'
     )
     db.session.add(entry)
     db.session.commit()
 
     assert '<Entry id:1 title:おもち text: おもちもちお>' in str(entry)
Esempio n. 15
0
def add_entry():
    if not session.get('logged_in'):
        return redirect(url_for('login'))
    entry = Entry(
            users_id=session['users_id'],
            title = request.form['title'],
            auther = request.form['auther'],
            publisher = request.form['publisher'],
            )
    db.session.add(entry)
    db.session.commit()
    flash('書籍が追加されました')
    return redirect(url_for('show_entries'))
Esempio n. 16
0
def get_img_from_s3(func):

    print(func)
    s3 = boto3.client('s3')
    bucket_name = os.environ['bucket_name']
    file_path = Entry.get(str(func))
    if file_path is None:
        return

    response = s3.get_object(Bucket=bucket_name, Key=file_path.fileName)
    body = response['Body'].read()
    img = base64.b64encode(body)

    return img
Esempio n. 17
0
def add_entry():
    global idx
    entry=Entry(
        title=request.form['title'],
        text=request.form['text'],
        body='未提出',
        stat='',
        cnt=0
    )
    db.session.add(entry)
    db.session.commit()
    idx+=1
    flash('新しい問題が追加された.')
    return redirect(url_for('show_entries'))
Esempio n. 18
0
def show_entry(id):  # 記事の詳細を表示
    entry = Entry.get(id)
    return render_template('entries/show.html', entry=entry)
Esempio n. 19
0
 def run(self):
     if not Entry.exists():
         Entry.create_table(read_capacity_units=5, write_capacity_units=2)
     if not Session.exists():
         Session.create_table(read_capacity_units=5, write_capacity_units=2)
Esempio n. 20
0
def show_entry(id):
	entry = Entry.gert(id)
Esempio n. 21
0
def show_entries():  # 記事の一覧を表示
    entries = Entry.scan()  # 全ての記事を取得
    entries = sorted(entries, key=lambda x: x.id, reverse=True)
    return render_template('entries/index.html', entries=entries)
Esempio n. 22
0
def delete_entry(id):  # 記事の削除
    entry = Entry.get(id)
    entry.delete()
    flash('投稿が削除されました')
    return redirect(url_for('show_entries'))
Esempio n. 23
0
def show_entries():
    entries = Entry.scan()  #PynamoDBのメソッド。すべての記事を取得
    entries = sorted(entries, key=lambda x: x.id,
                     reverse=True)  #timestamp順に記事をソート。
    return render_template('entries/index.html', entries=entries)
Esempio n. 24
0
 def run(self):
     if not Entry.exists():  # テーブルが存在しているかどうかを判定する
         Entry.create_table(read_capacity_units=5, write_capacity_units=2)
Esempio n. 25
0
def edit_entry(id):
    entry = Entry.get(id)
    return render_template('entries/edit.html', entry=entry)
Esempio n. 26
0
def graph1():
    # 【AWS IAM関連情報】
    #  IAMユーザーに割り当てたポリシー
    #   AmazonDynamoDBFullAccess
    #   AWSLambdaDynamoDBExecutionRole
    #  profile名
    #   環境編巣にAWS_DEFAULT_PROFILE, AWS_PROFILEとして定義した。
    dynamodb = boto3.resource("dynamodb")

    # TODO 2回DBにアクセスする理由はないので後で修正する
    # 1日前の時間表記(yyyyMMddhhmmss)を取得する
    yesterday = (datetime.now(timezone(timedelta(hours=+9), 'JST')) -
                 timedelta(days=1)).strftime('%Y%m%d%H%M%S')

    # 1日前までのデータをDynamoDBより取得する
    entries = Entry.scan(Entry.MeasureDateTime >= yesterday)
    entries = sorted(entries, key=lambda x: x.MeasureDateTime)

    df = pd.DataFrame(columns=["人数"])
    for entry in entries:
        df.loc[entry.MeasureDateTime] = entry.value

    #table = dynamodb.Table(os.environ['table_name'])
    #response = table.scan()

    #df = pd.json_normalize(response["Items"])

    # YYYYMMDDHHMMSS形式を日付として認識させる
    df.index = pd.to_datetime(df.index)
    #df.MeasureDateTime = pd.to_datetime(df.MeasureDateTime)

    # data["value"]はDecimalで入っているが。
    # Decimalは直接表示できないので、floatに変換
    df = df.astype({"人数": float})
    #df = df.astype({"value": float})

    # 日付でソートする。戻り値を受け取らないとソートされないので注意
    #df = df.sort_values(by='MeasureDateTime')

    fig, ax = plt.subplots()

    # x軸の目盛りは1時間ごとにする(set_major_locatorで目盛りを打つ場所を決める)
    ax.xaxis.set_major_locator(mdates.HourLocator(interval=4))
    # x軸の目盛りの表示形式を設定する(set_major_formatterで目盛りに書く内容を決める)
    ax.xaxis.set_major_formatter(mdates.DateFormatter('%m/%d\n%H:%M'))
    # 補助目盛線を付加する
    ax.xaxis.set_minor_locator(mdates.HourLocator())

    plt.plot(df.index, df["人数"])
    #plt.plot(df.MeasureDateTime, df.value)
    # ax.plot(df.MeasureDateTime, df.value)というのもある

    plt.title('時間と人数の推移')
    # plt.xlabel('X軸ラベル')
    # plt.ylabel('人数')
    plt.ylabel("人数", rotation=0, labelpad=20)
    # 縦書きにする場合
    # ax.set_ylabel("人\n数", rotation=0, va='center')

    plt.grid()
    # 補助目盛は点線にする
    plt.grid(True, which="minor", linestyle="--")
    # 主目盛は実線
    # plt.grid(True, which="major", linestyle="-")

    canvas = FigureCanvasAgg(fig)
    png_output = BytesIO()
    canvas.print_png(png_output)
    data = png_output.getvalue()

    response = make_response(data)
    response.headers['Content-Type'] = 'image/png'
    response.headers['Content-Length'] = len(data)
    return response
Esempio n. 27
0
def edit_entry(id):  # 記事の編集(フォームを表示)
    entry = Entry.get(id)
    return render_template('entries/edit.html', entry=entry)
Esempio n. 28
0
def add_entry():
    entry = Entry(title=request.form['title'], text=request.form['text'])
    db.session.add(entry)
    db.session.commit()
    flash('Update Succeeded')
    return redirect(url_for('show_entries'))
Esempio n. 29
0
def add_entry():
    entry = Entry(title=request.form["title"], text=request.form["text"])
    db.session.add(entry)
    db.session.commit()
    flash("新しく記事が作成されました")
    return redirect(url_for("show_entries"))
Esempio n. 30
0
def delete_entry(id):
    entry = Entry.get(id)
    entry.delete()  #データを削除
    flash('記事が更新されました')
    return redirect(url_for('show_entries'))