#記録
- 今日も練習の日です。チャットルームを作っていると、何年も前のネットワークの出会いのチャットルームを思い出します。それはノスタルジーですか?
- 数日間コードを書いていないので、db 操作、session 操作、from 操作、request 操作をほとんど忘れました。
- 以前のコードを参考にして練習を完了しました。アイデアは基本的に正しいですが、ほとんどデバッグしていません。
- 最後の 5 つのレコードを読み取るときに詰まりましたが、chatgpt の助けを借りて 5 つのレコードを取得しました。
#コード
## main.py
from flask import Flask, request, redirect, session
from replit import db
import os
from datetime import datetime
app = Flask(__name__)
app.secret_key = os.environ['sission_key']
@app.route("/", methods=["GET"])
def index():
f = open("index.html", "r")
page = f.read()
f.close()
text1 = ''
record_keys = list(db.keys())
last_5_keys = record_keys[-5:]
if last_5_keys:
for key in last_5_keys:
if session.get("user") == "DengLe":
login = f"<a href='/del?id={key}'>X</a>"
else:
login = ""
ms = db[key]
text = f"""
<p><span>{ms["user"]}:</span><span>{ms["message"]}</span><span>{login}</span></p>
"""
text1 += text
page = page.replace("{text}", text1)
return page
@app.route("/", methods=["POST"])
def message():
form = request.form
message = form["message"]
vuser = request.headers["X-Replit-User-Name"]
session["user"] = vuser
timestamp = datetime.now().timestamp()
db[timestamp] = {"message": message, "user": vuser}
return redirect("/")
@app.route("/del")
def delmessage():
form = request.args
del db[form['id']]
return redirect("/")
app.run(host='0.0.0.0', port=81)
## HTML
<html>
<head>
<title>ネットワークの出会い</title>
<script src="https://replit.com/public/js/repl-auth-v2.js"></script>
</head>
<body>
<h1>ネットワークの出会いチャットルーム</h1>
<p><button onclick="LoginWithReplit()">ログイン</button>
</p>
<form action="/" method="post">
<input type="text" name="message">
<button>送信</button>
</form>
<p>{text}</p>
</body>
</html>