python Flaskで簡単なwebアプリをつくっています。
お世話になっている記事(https://creepfablic.site/2019/05/03/flask-sqlite/)
<作っているアプリイメージ↓>
1枚目の画像にある、名前と年齢を入力すると、DBにデータが保存されます。2枚目の画像にあるように、登録した名前と、年齢が表示されるアプリです。
1枚目は、index.html二枚目は、db_info.htmlです。
<解決したいこと>
名前と年齢のコラムを作ることができましたが、この二つを送信した日時も、表示させてみたいと思いました。二枚目の画像の右の行、登録日時の行に表示させたいと考えています。
run.pyに様々な方法でコードをかいてみたのですが、力不足でできない状態です。
どなたかいいアイディアご教授いただけると幸いです(><)
よろしくお願いいたします。
<ファイルとディレクトリ>
directory/
|-templates/
|--index.html
|--db_info.html
|
|-flask.sqlite
|
|-run.py
<開発環境>
windows10
PyCharm
anaconda
Python
Flask
sqlite
sqlalchemy
run.pyはこんな感じです。
python
1from flask import Flask, render_template, request #Flaskの操作に必要なモジュールをインポート 2from flask_sqlalchemy import SQLAlchemy 3import datetime 4from sqlalchemy import Column, Integer, String, DateTime #DBのテーブルの型をインポート 5 6#Flaskの立ち上げ 7 8app = Flask(__name__) 9app.config['SECRET_KEY'] = 'secret key' 10app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///flask.sqlite' # DBへのパス 11 12#SQLAlchemyでデータベース定義 13 14db = SQLAlchemy(app) 15 16#SQLiteのDBテーブル情報 17 18 19class FLASKDB(db.Model): 20 __tablename__ = 'flask_table' 21 ID = db.Column(Integer, primary_key=True) 22 YOURNAME = db.Column(String(32)) 23 AGE = db.Column(Integer) 24 DATE = db.Column(DateTime, default=datetime.datetime.utcnow) 25 26 27 28 29#DBの作成 30 31db.create_all() 32 33#127.0.0.1:5000に遷移したときの処理 34 35@app.route('/') 36def route(): 37 return render_template('index.html') 38 39#127.0.0.1/DBINFO:5000に遷移したときの処理 40 41@app.route('/DBINFO', methods = ['POST', 'GET']) 42def bokinbox(): 43 if request.method == 'POST': 44 yourname = request.form['yourname'] 45 age = request.form['age'] 46 flask = FLASKDB(YOURNAME=yourname, AGE=age) 47 db.session.add(flask) 48 db.session.commit() 49 db.session.close() 50 FLASKDB_infos = db.session.query(FLASKDB.ID, FLASKDB.YOURNAME, FLASKDB.AGE).all() 51 return render_template('db_info.html', FLASKDB_infos=FLASKDB_infos) 52 53#python app立ち上げ 54 55if __name__ == '__main__': 56 app.run(debug=True)
db_info.htmlはこんな感じです。
html
1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <title>database</title> 6 <!--bootstrapよみこみ--> 7 <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"> 8</head> 9<body class="text-center"> 10<p class="m-5 p-5">送信ありがとう!!</p> 11 <table border="1" width="80%" height="150" class="m-auto"> 12 <tr> 13 <th bgcolor="#80ffff">名前</th> 14 <th bgcolor="#80ffff">年齢</th> 15 <th bgcolor="#80ffff">登録日時</th> 16 </tr> 17 {% for FLASKDB_info in FLASKDB_infos %} 18 <tr> 19 <td>{{FLASKDB_info[1]}}</td> 20 <td>{{FLASKDB_info[2]}}歳</td> 21 <td>{{]}}</td> 22 </tr> 23 {% endfor %} 24 </table> 25 26</body> 27</html>
回答1件
あなたの回答
tips
プレビュー