1.flask 项目整合bootstarp,参考:
https://blog.csdn.net/weixin_42883164/article/details/130106333
2.bootstarp,整合vue(步骤):
2.1安装Vue.js:在Flask项目的根目录下打开命令行终端,运行以下命令来安装Vue.js
npm install vue
2.2在 HTML 模板中引用 Bootstrap 和 Vue 对应的 CSS 和 JavaScript 文件,并调用相应的组件:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta content="IE=edge" http-equiv="X-UA-Compatible">
<title>{% block title %}demo{% endblock %}</title>
<!-- CSS -->
<script src="{{ url_for('static', filename='js/charts.js')}}" type="text/javascript"></script>
<script src="{{ url_for('static', filename='js/jquery.slimscroll.min.js')}}" type="text/javascript"> </script>
<!-- 引入vue -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.12/vue.js"></script>
</head>
<body>
{% block content %}
{% endblock %}
<script src="{{ url_for('static', filename='vue.min.js') }}"></script>
<script src="{{ url_for('static', filename='jquery.min.js') }}"></script>
<script src="{{ url_for('static', filename='popper.min.js') }}"></script>
<script src="{{ url_for('static', filename='bootstrap.min.js') }}"></script>
</body>
</html>
2.3在 HTML 模板的 content 块中插入 Vue 组件,例如:
<div class="row">
<div class="col-sm-6" id="myTable">
<section class="panel">
<header class="panel-heading row align-items-center" style="display: flex">
<div style="flex: 9"><span>{{ '{{ message }}' }}</span></div>
<div style="flex: 1" onclick="userAdd()">
<button class="btn btn-primary"><span class="glyphicon glyphicon-plus"></span> 添加</button>
</div>
</header>
<table class="table">
<thead>
<tr>
<th>#</th>
<th>{{ data.firstName }}</th>
<th>{{ data.lastName }}</th>
<th>{{ data.userName }}</th>
<th>编辑</th>
</tr>
</thead>
<tbody>
{% for user in data.users %}
<tr>
<td>{{ user.id }}</td>
<td>{{ user.firstName }}</td>
<td>{{ user.lastName }}</td>
<td>{{ user.userName }}</td>
<td class="row align-items-center">
<button class="btn btn-primary" onclick='userEdit({{ user.id ,user.firstName,user.lastName, user.userName }})' > edit</button>
<button class="btn btn-primary" onclick='userDelete({{ user.id }})' > 删除</button>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</section>
</div>
</div>
<script>
var app = new Vue({
el: '#myTable',
data: {
message: '用户信息',
}
});
</script>
2.4效果
2.5注意:引入JavaScript和CSS文件:由于 Flask 框架默认使用 Jinja2 模板引擎,如果您需要在 HTML 文件中使用双括号 {{ }} 来显示变量,需要使用以下写法来避免与 Jinja2 冲突:
{% raw %}
<div id="app">
{{ '{{ message }}' }}
</div>
{% endraw %}