Flask,获取当地时间

Bri*_*ian 2 python flask

我正在用 Python 构建一个 Flask 应用程序,我想保存用户本地时间。

我想用这个

time.strftime('%A %B, %d %Y %H:%M:%S')
Run Code Online (Sandbox Code Playgroud)

但这给了我服务器本地时间。

Kir*_*hou 6

对于 Web 应用程序,flask 只负责服务器端。

您的目的可以通过使用 javascript 获取客户端时间并将其传递给服务器来实现。

文件夹结构

.
??? app.py
??? templates
    ??? index.html
Run Code Online (Sandbox Code Playgroud)

应用程序

from flask import Flask, request, render_template
import time

app = Flask(__name__)

@app.route("/")
def index():
    return render_template("index.html")

@app.route("/getTime", methods=['GET'])
def getTime():
    print("browser time: ", request.args.get("time"))
    print("server time : ", time.strftime('%A %B, %d %Y %H:%M:%S'));
    return "Done"
Run Code Online (Sandbox Code Playgroud)

模板/index.html

<script> 
function sendTimeToServer(){
    var time = new Date();
    var i = document.createElement("img");
    i.src = "/getTime?time=" + time;
    document.getElementById("time").innerHTML = time;
}
</script>
<button onclick="sendTimeToServer()">update time</button>
<div id="time">Time: </div>
Run Code Online (Sandbox Code Playgroud)

控制台上的示例结果

# 1. open browser: http://127.0.0.1:5000
# 2. click "update time" button

 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [01/Nov/2016 19:58:36] "GET / HTTP/1.1" 200 -
browser time:  Tue Nov 01 2016 19:58:37 GMT 0800 (CST)
server time:   Tuesday November, 01 2016 19:58:37
127.0.0.1 - - [01/Nov/2016 19:58:37] "GET /getTime?time=Tue%20Nov%2001%202016%2019:58:37%20GMT+0800%20(CST) HTTP/1.1" 200 -
Run Code Online (Sandbox Code Playgroud)