帮我写一个登陆成功以后,跳转到首页,首页有标题,左边侧边栏,点击侧边栏能在右边展示数据可视化的图,用flask
时间: 2024-09-12 08:07:05 浏览: 40
侧边栏页面切换
在Flask中创建一个简单的登录后跳转至首页的示例,首页包括一个标题、左侧侧边栏以及右侧的数据可视化功能,你可以按照下面的步骤进行:
首先,你需要安装必要的库,如Flask、Flask-WTF(用于表单处理)、WTForms-Bootstrap(美化表单样式),以及matplotlib或其他数据可视化库(例如Plotly、Bokeh等)。安装命令如下:
```bash
pip install flask flask-wtf wtforms-bootstrap matplotlib (或替换为你选择的库)
```
然后,设置基本的Flask应用结构:
```python
from flask import Flask, render_template, redirect, url_for, session
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
import plotly.express as px
app = Flask(__name__)
app.secret_key = 'your_secret_key' # 设置安全秘钥
# 其他配置项...
```
接下来,创建登录页面(login.html):
```html
<!-- login.html -->
<!DOCTYPE html>
<html lang="zh">
<head>
<title>登录</title>
</head>
<body>
<form method="POST" action="{{ url_for('login') }}">
{{ form.hidden_tag() }}
<div class="form-group">
{{ form.username.label }}<br>
{{ form.username(class_='form-control') }}
</div>
<div class="form-group">
{{ form.password.label }}<br>
{{ form.password(class_='form-control') }}
</div>
<button type="submit" class="btn btn-primary">登录</button>
</form>
</body>
</html>
```
登录视图函数(login.py):
```python
@app.route('/login', methods=['GET', 'POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
# 检查用户名和密码,登录成功则保存session或cookie并重定向到首页
session['username'] = form.username.data
return redirect(url_for('home'))
return render_template('login.html', form=form)
class LoginForm(FlaskForm):
username = StringField('用户名')
password = PasswordField('密码')
submit = SubmitField('登录')
```
首页(index.html)可以包含标题和数据可视化部分,假设我们有一个简单的侧边栏导航链接:
```html
<!-- index.html -->
<!DOCTYPE html>
<html lang="zh">
<head>
<title>首页 - {{ current_username }}</title>
</head>
<body>
<header>
<h1>欢迎,{{ current_username }}!</h1>
</header>
<div class="container">
<nav class="sidebar">
<a href="#chart">查看数据可视化</a>
</nav>
<main id="chart" class="content">
<!-- 数据可视化代码将在这里生成 -->
</main>
</div>
<script src="{{ url_for('static', filename='js/chart.js') }}"></script>
</body>
</html>
```
最后,创建一个数据可视化的简单示例,这个例子使用Plotly绘制图表(假设你已经实现了数据获取逻辑):
```javascript
// chart.js
var data = ... // 获取实时数据
var fig = px.line(data);
document.getElementById('chart').innerHTML = fig.to_html(full_html=False, include_plotlyjs=False); // 插入图表
```
运行应用:
```python
if __name__ == '__main__':
app.run(debug=True) # 开发模式下调试
```
阅读全文