0%

信息课聊天室

使用flask和简单的html写了一个简单的信息课聊天室

from flask import Flask, request

app = Flask(__name__)

msglist = []

@app.route("/", methods=["POST", "GET"])
def root():
    global msglist
    if request.method == "GET":
        ip = request.remote_addr
        reqnum = ip[ip.rfind(".")+1:]
        user = request.values.get("user")
        message = request.values.get("message")
        print(reqnum, user, message)
        if (user and message) and (not msglist or msglist[0] != (reqnum, user, message)):
            msglist.insert(0, (reqnum, user, message))
    

    with open("chat.html", 'r') as f:
        text = ""
        name = ""
        for fornum, user, message in msglist:
            text += "<p>%s,%s: %s</p>" % (fornum, user, message)
            if not name and reqnum == fornum:
                name = user
        # 防止老师直接偷看
        if ip == "10.10.50.49":
            return ""
        return f.read() % (name, text)

app.run(host="0.0.0.0", port=8080, debug=False)
<!DOCTYPE html>
<html>
    <title>
        聊天室
    </title>
    <body>
        <h2>聊天室!</h2>
        <p>输入完成之后点击send发送</p>
        <p>如果不点击页面上的刷新按钮是不能看到新的信息的</p>
        <p>不要手动使用浏览器的刷新</p>
        <div>
            <button type="button" onclick="javascript:location.replace('/')">刷新</button>
            <form action="/" method="get">
                <div>
                    <label for="name">name:</label>
                    <input type="text" name="user" id="user" value="%s" required /> 
                </div>
                <div>
                    <label for="message">message:</label>
                    <input type="text" name="message" id="message" required />
                </div>
                <div>
                    <input type="submit" value="send" />
                </div>
            </form>
        </div>
        <p></p><p></p>
        <div>
            %s
        </div>

    </body>
</html>