如果我现在有个前端页面和一个flask后端,并在flask定义了个时间,然后我从前端页面也定义了个时间,并提交表单到了flask,我现在要怎么做才能获取到表单中的时间,并修改了flask中的这个时间。请给出flask模板,
时间: 2024-05-14 14:14:11 浏览: 125
Flex 获取当前时间和获取当前时间减去一天的时间并且格式化为年月日时分秒的形式
5星 · 资源好评率100%
前端页面代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>修改时间</title>
</head>
<body>
<form method="post" action="{{ url_for('update_time') }}">
<label for="time">时间:</label>
<input type="datetime-local" id="time" name="time"><br><br>
<input type="submit" value="更新时间">
</form>
</body>
</html>
```
Flask后端代码:
```python
from flask import Flask, render_template, request
app = Flask(__name__)
# 初始化时间为当前时间
time = datetime.datetime.now()
# 定义更新时间的路由
@app.route('/update_time', methods=['POST'])
def update_time():
global time
time_str = request.form['time']
time = datetime.datetime.strptime(time_str, '%Y-%m-%dT%H:%M')
return '时间已更新为:{}'.format(time.strftime('%Y-%m-%d %H:%M:%S'))
# 定义主页的路由,渲染前端页面
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run()
```
在前端页面中,我们使用了`<input type="datetime-local">`来让用户选择时间,这个控件的值是一个字符串,格式为`YYYY-MM-DDTHH:mm`。在后端的路由函数中,我们使用`request.form['time']`来获取表单中的时间字符串,然后使用`strptime`函数将其转换为`datetime`类型,最后将更新后的时间字符串返回给用户。注意,在路由函数中使用`global`关键字来声明`time`是全局变量,这样才能在函数内部修改它。
同时,我们在主页的路由函数中调用`render_template`函数来渲染前端页面,这个函数会自动在`templates`文件夹中查找名为`index.html`的文件,并将其渲染后返回给用户。需要注意的是,`templates`文件夹必须与Python文件在同一个目录下。
阅读全文