commit
485e54b06b
4 changed files with 119 additions and 0 deletions
@ -0,0 +1,33 @@ |
|||||
|
from flask import Flask, jsonify |
||||
|
|
||||
|
app = Flask(__name__, static_folder="public", static_url_path="") |
||||
|
|
||||
|
# WPS表格处理知识点数据 |
||||
|
wps_table_data = { |
||||
|
"introduction": "WPS表格是一款功能强大的电子表格软件,适用于数据分析和报告。", |
||||
|
"functions": [ |
||||
|
"数据排序:快速对数据进行升序或降序排列。", |
||||
|
"数据筛选:根据特定条件筛选数据。", |
||||
|
"公式计算:支持多种数学和统计公式。", |
||||
|
"图表制作:轻松创建各种图表,如柱状图、饼图等。", |
||||
|
"数据透视表:对大量数据进行快速汇总和分析。" |
||||
|
], |
||||
|
"tips": [ |
||||
|
"使用快捷键可以提高工作效率。", |
||||
|
"定期保存工作,避免数据丢失。", |
||||
|
"利用模板可以快速创建表格。" |
||||
|
] |
||||
|
} |
||||
|
|
||||
|
# 根路径返回 index.html |
||||
|
@app.route("/") |
||||
|
def serve_index(): |
||||
|
return app.send_static_file("index.html") |
||||
|
|
||||
|
# API 子路径,提供WPS表格处理知识点数据 |
||||
|
@app.route("/api/wps-table") |
||||
|
def api_wps_table(): |
||||
|
return jsonify(wps_table_data) |
||||
|
|
||||
|
if __name__ == "__main__": |
||||
|
app.run(debug=True, port=81) |
@ -0,0 +1,29 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>WPS Table Knowledge</title> |
||||
|
<link rel="stylesheet" href="style.css"> |
||||
|
</head> |
||||
|
<body> |
||||
|
<header> |
||||
|
<h1>WPS Table Knowledge</h1> |
||||
|
</header> |
||||
|
<main> |
||||
|
<section id="introduction"> |
||||
|
<h2>Introduction</h2> |
||||
|
<p id="intro-text"></p> |
||||
|
</section> |
||||
|
<section id="functions"> |
||||
|
<h2>Functions</h2> |
||||
|
<ul id="functions-list"></ul> |
||||
|
</section> |
||||
|
<section id="tips"> |
||||
|
<h2>Tips</h2> |
||||
|
<ul id="tips-list"></ul> |
||||
|
</section> |
||||
|
</main> |
||||
|
<script src="script.js"></script> |
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,20 @@ |
|||||
|
document.addEventListener('DOMContentLoaded', function() { |
||||
|
fetch('/api/wps-table') |
||||
|
.then(response => response.json()) |
||||
|
.then(data => { |
||||
|
document.getElementById('intro-text').textContent = data.introduction; |
||||
|
const functionsList = document.getElementById('functions-list'); |
||||
|
data.functions.forEach(functionItem => { |
||||
|
const li = document.createElement('li'); |
||||
|
li.textContent = functionItem; |
||||
|
functionsList.appendChild(li); |
||||
|
}); |
||||
|
const tipsList = document.getElementById('tips-list'); |
||||
|
data.tips.forEach(tip => { |
||||
|
const li = document.createElement('li'); |
||||
|
li.textContent = tip; |
||||
|
tipsList.appendChild(li); |
||||
|
}); |
||||
|
}) |
||||
|
.catch(error => console.error('Error fetching data:', error)); |
||||
|
}); |
@ -0,0 +1,37 @@ |
|||||
|
body { |
||||
|
font-family: Arial, sans-serif; |
||||
|
background-color: #f0f0f0; |
||||
|
margin: 0; |
||||
|
padding: 0; |
||||
|
} |
||||
|
|
||||
|
header { |
||||
|
background-color: #333; |
||||
|
color: white; |
||||
|
padding: 10px 0; |
||||
|
text-align: center; |
||||
|
} |
||||
|
|
||||
|
main { |
||||
|
padding: 20px; |
||||
|
background-color: white; |
||||
|
margin: 20px; |
||||
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); |
||||
|
} |
||||
|
|
||||
|
h1, h2 { |
||||
|
color: #333; |
||||
|
} |
||||
|
|
||||
|
section { |
||||
|
margin-bottom: 20px; |
||||
|
} |
||||
|
|
||||
|
ul { |
||||
|
list-style-type: none; |
||||
|
padding: 0; |
||||
|
} |
||||
|
|
||||
|
li { |
||||
|
margin: 5px 0; |
||||
|
} |
Loading…
Reference in new issue