請你幫我用python Flask框架製作一個web,需要實現記錄歷史數據,并且可以查閲歷史數據
时间: 2024-03-17 17:45:34 浏览: 20
好的,我可以为您提供一个简单的 Flask 网站,它可以记录历史数据并查看历史数据。以下是一个简单的示例:
首先,我们需要安装 Flask 和 SQLAlchemy:
```bash
pip install flask sqlalchemy
```
接下来,我们创建一个名为 `app.py` 的文件,并添加以下代码:
```python
from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
import datetime
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///history.db'
db = SQLAlchemy(app)
class History(db.Model):
id = db.Column(db.Integer, primary_key=True)
data = db.Column(db.String(200), nullable=False)
timestamp = db.Column(db.DateTime, default=datetime.datetime.utcnow)
@app.route('/')
def index():
return render_template('index.html', history=History.query.all())
@app.route('/add', methods=['POST'])
def add_data():
data = request.form['data']
history = History(data=data)
db.session.add(history)
db.session.commit()
return redirect(url_for('index'))
if __name__ == '__main__':
db.create_all()
app.run(debug=True)
```
在上面的示例中,我们定义了一个名为 `History` 的模型,它包含三个字段:`id`,`data` 和 `timestamp`。`id` 字段是主键,`data` 字段用于存储数据,`timestamp` 字段用于记录添加数据的时间戳。
我们还定义了两个路由:`/` 和 `/add`。`/` 路由将渲染一个名为 `index.html` 的模板,并将历史数据作为参数传递给模板。`/add` 路由将从 POST 请求中获取数据,并将其添加到数据库中。
接下来,我们创建一个名为 `templates/index.html` 的模板,它将显示历史数据并提供一个表单以添加新数据:
```html
<!DOCTYPE html>
<html>
<head>
<title>History</title>
</head>
<body>
<h1>History</h1>
<ul>
{% for item in history %}
<li>{{ item.data }} ({{ item.timestamp }})</li>
{% endfor %}
</ul>
<hr>
<h2>Add Data</h2>
<form method="POST" action="{{ url_for('add_data') }}">
<input type="text" name="data">
<input type="submit" value="Add">
</form>
</body>
</html>
```
在上面的模板中,我们使用 Flask 的模板引擎来遍历历史数据并将其显示在页面上。我们还提供了一个表单,允许用户输入新数据并将其添加到数据库中。
最后,我们可以运行以下命令来启动应用程序:
```bash
python app.py
```
现在,您可以访问 `http://localhost:5000/` 来查看历史数据并添加新数据。历史数据将被保存在名为 `history.db` 的 SQLite 数据库中。