在flask开发过程中submit_data视图函数中收到一个数组selected=[item1,item2……],现在写一个视图函数showselect、和网页,将此数组通过get方法展示到前端,
时间: 2024-09-17 14:00:41 浏览: 34
1.flask开发之一(URL配置)共4页.pdf.zip
在 Flask 开发中,你可以创建一个名为 `showselect` 的视图函数来处理这个需求。首先,你需要在 HTML 模板文件中设置一个表单或者按钮,允许用户选择项目并提交数据。然后在后端接收这个选中的数组。
**HTML模板(如templates/index.html):**
```html
<!DOCTYPE html>
<html lang="zh">
<head>
<title>显示选定项</title>
</head>
<body>
<form method="GET" action="{{ url_for('showselect') }}">
<input type="hidden" name="selected" id="selected">
<!-- 添加一个复选框列表,每个选项都有一个对应的值 -->
{% for item in items %}
<label>
<input type="checkbox" value="{{ item }}" name="selected[]"> {{ item }}
</label>
{% endfor %}
<button type="submit">显示选定</button>
</form>
<!-- 显示结果的部分,假设id为'results' -->
<div id="results"></div>
<script src="{{ url_for('static', filename='js.js') }}"></script>
</body>
</html>
```
**JavaScript (js.js) (如果需要的话):**
```javascript
document.querySelector('form').addEventListener('submit', function(e) {
e.preventDefault();
var selected = document.querySelectorAll('input[type="checkbox"]:checked').map(item => item.value);
fetch('/showselect', {
method: 'GET',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: 'selected=' + encodeURIComponent(JSON.stringify(selected))
})
.then(response => response.text())
.then(data => document.getElementById('results').innerText = data);
});
```
**Flask 视图 (`app.py` 或相应的路由文件):**
```python
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/', methods=['GET'])
def index():
# 这里假设items是从数据库获取的一组可用选项
items = ['item1', 'item2', ...]
return render_template('index.html', items=items)
@app.route('/showselect', methods=['GET'])
def showselect():
selected = request.args.getlist('selected')
return jsonify({'selected_items': selected})
if __name__ == '__main__':
app.run(debug=True)
```
当用户提交表单时,`showselect` 视图会从 URL 参数中提取 `selected` 数组,并返回到前端显示。记得安装 Flask,以及处理 JSON 序列化的情况,这里用到了 `jsonify` 函数。
阅读全文