当前位置: 首页 > news >正文

Python service Flask generate list data and display in web view via html and javscript

python -m pip install flask
python -m pip install flask-cors

 

 

//Flaskfrom flask import Flask,jsonify,send_from_directory
from flask_cors import CORS
import uuid
import time
import os
from datetime import datetime
import json
import uuidapp=Flask(__name__)#启用CORS支持
CORS(app)idx=0@app.route('/')
def index():"""返回HTML页面"""return send_from_directory('.','Index3.html')@app.route('/get_books_list')
def get_books_list():"""返回"""global idxarr=range(1,21)book_list=[]for a in arr:idx+=1book_list.append({"Id":idx,"Name":f'Name_{idx}',"Content":f'Content_{idx}',"ISBN":f'ISBN_{idx}_{uuid.uuid4().hex}',"Title":f'Title_{idx}',"Topic":f'Topic_{idx}'})print(book_list)json_str=json.dumps(book_list,indent=4,ensure_ascii=False)print(f'Json_str:{json_str}')return jsonify({'data':json_str,'timestamp':datetime.now().strftime('%Y%m%d%H%M%S%f')})if __name__=='__main__':app.run(debug=True,port=5000,host='0.0.0.0')
<html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>获取数据</title><style>body{align-items: center;min-width: 1500px;}.container {text-align: center;font-size: 20px;}table {width:100%;margin:20px auto;border-collapse:collapse;}th,td{border:1px solid #ddd;padding:8px;text-align:left;}th {background-color:#f2f2f2;}#fetchBtn {font-size: 20px;min-width: 1200px;}</style>        </head><body align-items="center"><div class="container"><h1>数据获取服务</h1><table id='testTable'><tr><th>Id</th><th>Name</th><th>Content</th><th>ISBN</th><th>Title</th><th>Topic</th></tr></table><div><button id="fetchBtn">获取数据</button></div>       </div>        <script>document.getElementById('fetchBtn').addEventListener('click',function(){//显示加载状态
                const testTable=document.getElementById('testTable');                //禁用按钮防止重复点击
                const btn=document.getElementById('fetchBtn');//清空表格数据(保留表头)while(testTable.rows.length>1){testTable.deleteRow(1);}btn.disabled=true;btn.textContent='获取中...';//发送请求
                fetch('http://localhost:5000//get_books_list').then(response=>response.json()).then(data=>{<!-- alert(data.data); -->try{//解析返回的JSON数据
                        const books=JSON.parse(data.data);//遍历数据并添加到表格
                        books.forEach(book=>{const row=testTable.insertRow();row.innerHTML=`<td>${book.Id}</td><td>${book.Name}</td><td>${book.Content}</td><td>${book.ISBN}</td><td>${book.Title}</td><td>${book.Topic}</td>
                            `;});console.log('loaded data successfully:',books.length);}catch(error){console.error('Parse data failed:',error);alert('data format error');                        }//恢复按钮
                        btn.disabled=false;btn.textContent='获取数据';}).catch(error=>{//错误处理
                    console.error('Request failed:',error);alert('fetch data failed '+error.message);//恢复按钮
                    btn.disabled=false;btn.textContent='Fetch Data';});});</script></body>
</html>

 

http://127.0.0.1:5000

 

image

 

image

 

 

 

 

 

image

 

 

 

image

 

 

 

image

 

image

 

http://www.rkmt.cn/news/77959.html

相关文章:

  • 仿真分析工具 Abaqus 2024 下载安装教程:含安装包下载 + 配置教程,新手也能一次成功
  • aaaa
  • 解码继承——代码复用与层次化设计
  • 2025年12月北京陪诊公司推荐榜:专业机构对比分析与用户选择指南
  • TB365FC刷机包_CN_ZUXOS_1.1.10.122_ST_250828
  • Python 异步编程:使用 async/await 实现高效并发 - 指南
  • 超越大语言模型:蒸馏技术实战指南
  • JavaEE初阶——多线程(9)JUC的程序类和死锁
  • web框架——flask3.x-上下文管理机制
  • 内旋与外旋两种旋转方式
  • zsj_蓝桥python系列二_Python 基础语法 _Python 列表推导式
  • 12.08
  • 治疗白带异常品牌哪家好?女性健康护理品牌解析
  • 北京婚姻法律师事务所排名及综合实力解析
  • 12月8号
  • 三种数组创建方法
  • 北京分割房产最好的律师事务所服务信息参考
  • 道3:英语能力的提高,必须由“可理解性输入”、“低情感过滤”和“足量”共同驱动
  • 北京婚姻律师事务所推荐:专注家事法律服务机构盘点
  • 朝阳区离婚律师事务所推荐:专注婚姻家事法律服务机构盘点
  • 北京离婚官司最厉害的律所:聚焦婚姻家事法律服务的专业机构盘点
  • 工业吸尘器厂家有哪些?行业热门品牌推荐
  • 北京处理家暴案件厉害的律所推荐及法律服务参考
  • 01
  • 深入解析:Python 数据类(dataclass)深度解析与 Pydantic 对比
  • 【Agent】MemOS 源码笔记---(3)---搜索
  • argocd--app
  • 京城信德斋官方服务及回收电话信息声明公示
  • 信息论(12):Jensen不等式
  • Beyond Translation: LLM-Based Data Generation for Multilingual Fact-Checking