我在Python中构建Flask应用程序,我希望节省用户本地时间。
我想过用这个
time.strftime('%A %B, %d %Y %H:%M:%S')
但是这给了我服务器当地时间。
答案 0 :(得分:2)
对于Web应用程序,flask仅负责服务器端。
您的目的可以通过使用javascript来获取客户端时间并将其传递给服务器来实现。
文件夹结构
.
├── app.py
└── templates
└── index.html
<强> app.py 强>
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"
<强>模板/ 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>
控制台上的示例结果
# 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 -
答案 1 :(得分:0)
使用客户端获取日期不是一个好方法,因为它不安全。
我认为最好的方法是将本地服务器时间更新为您的时区,并使用Python datetime lib来获取当前时间。
用户可以更改您的js文件,并将错误的日期时间传递给您的服务器!