003.資料庫有了,我想要用網頁看。

更新 發佈閱讀 10 分鐘
投資理財內容聲明

Q:好,這個002步驟完成了,接下來我想要有個簡單的網頁可以去找到這資料庫裡的靜態資料。

A:

項目新結構

我們將基於一個簡單的前後端分離架構來實現網頁訪問。

project/

├── backend/ # 後端服務,提供 API
│ ├── app.py # Flask 主程式,處理數據庫連接與 API
│ ├── requirements.txt # 後端依賴

├── frontend/ # 前端頁面,顯示靜態資料
│ ├── index.html # 主頁面
│ ├── app.js # 與 API 通信的 JavaScript
│ ├── styles.css # 簡單樣式

├── sql/ # 資料庫相關 SQL 文件
│ ├── create_twse_table.sql # 建表語句

├── README.md # 更新後的說明文件
└── .gitignore # 忽略文件


步驟 1:建立後端 API

1. 使用 Flask 開發 API

我們將 Flask 作為後端框架,提供一個簡單的 /api/companies API,返回資料庫中的靜態資料。

backend/app.py

python
複製程式碼from flask import Flask, jsonify
from sqlalchemy import create_engine
import pandas as pd

app = Flask(__name__)

# 資料庫連接設定
DB_CONNECTION_STRING = "postgresql://<username>:<password>@<host>:<port>/<database>"
engine = create_engine(DB_CONNECTION_STRING)

@app.route('/api/companies', methods=['GET'])
def get_companies():
"""
從資料庫中讀取公司靜態資料並返回 JSON
"""
try:
# 使用 SQLAlchemy 讀取資料
query = "SELECT stock_id, company_name, industry, address, website FROM twse_listed_companies"
df = pd.read_sql(query, engine)

# 將資料轉為 JSON 格式返回
return jsonify(df.to_dict(orient='records'))
except Exception as e:
return jsonify({"error": str(e)}), 500

if __name__ == "__main__":
app.run(debug=True)

2. 安裝後端依賴

backend/requirements.txt 中列出 Flask 和 SQLAlchemy 的依賴:

php
複製程式碼flask
sqlalchemy
pandas
psycopg2-binary

安裝依賴:

bash
複製程式碼cd backend
pip install -r requirements.txt

3. 啟動後端服務

運行 Flask:

bash
複製程式碼python app.py

後端將在 http://127.0.0.1:5000/api/companies 提供 API。


步驟 2:建立前端靜態頁面

前端部分使用 HTML、CSS 和 JavaScript,通過 AJAX 請求 Flask API 並展示資料。

1. 建立主頁面

frontend/index.html

html
複製程式碼<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>TWSE Listed Companies</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h1>TWSE Listed Companies</h1>
<table id="companies-table">
<thead>
<tr>
<th>Stock ID</th>
<th>Company Name</th>
<th>Industry</th>
<th>Address</th>
<th>Website</th>
</tr>
</thead>
<tbody>
<!-- Data will be inserted here -->
</tbody>
</table>
<script src="app.js"></script>
</body>
</html>

2. 編寫 JavaScript

frontend/app.js

javascript
複製程式碼// Fetch companies data from API
fetch('http://127.0.0.1:5000/api/companies')
.then(response => response.json())
.then(data => {
const tableBody = document.querySelector('#companies-table tbody');
tableBody.innerHTML = ''; // 清空現有的資料

// 插入每筆資料
data.forEach(company => {
const row = document.createElement('tr');
row.innerHTML = `
<td>${company.stock_id}</td>
<td>${company.company_name}</td>
<td>${company.industry}</td>
<td>${company.address}</td>
<td><a href="${company.website}" target="_blank">${company.website}</a></td>
`;
tableBody.appendChild(row);
});
})
.catch(error => console.error('Error fetching data:', error));

3. 添加樣式

frontend/styles.css

css
複製程式碼body {
font-family: Arial, sans-serif;
margin: 20px;
}

h1 {
text-align: center;
}

table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
}

table, th, td {
border: 1px solid #ddd;
}

th, td {
padding: 10px;
text-align: left;
}

th {
background-color: #f4f4f4;
}

步驟 3:更新 README 文件

將安裝和啟動步驟加入 README 文件。


留言
avatar-img
微嗑多的沙龍
2會員
28內容數
人生online之資本市場大作戰
微嗑多的沙龍的其他內容
2024/12/02
這時候修改的程式部分變多了,而且也會遇到Bug,所以重點不僅是要學會把程式路徑打通,還要知道怎麼描述錯誤,了解邏輯錯誤或語法錯誤在哪裡。 簡單來說,就算要複製貼上也要貼對位置。 另外,GPT的確會考慮多一些問題,看到程式的當下會覺得:「哦對,這個要注意。」然後就又佩服GPT可以做到這個程度。
2024/12/02
這時候修改的程式部分變多了,而且也會遇到Bug,所以重點不僅是要學會把程式路徑打通,還要知道怎麼描述錯誤,了解邏輯錯誤或語法錯誤在哪裡。 簡單來說,就算要複製貼上也要貼對位置。 另外,GPT的確會考慮多一些問題,看到程式的當下會覺得:「哦對,這個要注意。」然後就又佩服GPT可以做到這個程度。
2024/12/02
Q: 承接之前的程式,做一個搜尋對話框
Thumbnail
2024/12/02
Q: 承接之前的程式,做一個搜尋對話框
Thumbnail
2024/11/28
目前為止的程式架構。 我就是幫忙看架構上有沒有錯的慣老闆。
2024/11/28
目前為止的程式架構。 我就是幫忙看架構上有沒有錯的慣老闆。
看更多
你可能也想看
Thumbnail
白話一點的意思是:「從公開的資料(API),抓下來放在自己的資料庫(PostgresDB),然後再用網頁(Web.app)的方式呈現出來」
Thumbnail
白話一點的意思是:「從公開的資料(API),抓下來放在自己的資料庫(PostgresDB),然後再用網頁(Web.app)的方式呈現出來」
Thumbnail
之前有習慣在YouTbe上學習,但是看完就結束,等想到要用這方面資訊才,再去搜尋常常不一定可一找到。在書中看到 個人知識管理三大階段,記憶、連結、創造 透過數位筆記自己喜愛的資訊紀錄下來,整理分類,累積至一定的量,就可以運用這些資訊創造文章。 書中提到運用自己熟悉的數位
Thumbnail
之前有習慣在YouTbe上學習,但是看完就結束,等想到要用這方面資訊才,再去搜尋常常不一定可一找到。在書中看到 個人知識管理三大階段,記憶、連結、創造 透過數位筆記自己喜愛的資訊紀錄下來,整理分類,累積至一定的量,就可以運用這些資訊創造文章。 書中提到運用自己熟悉的數位
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
第一步:建立核心資料庫和數據收集流程
Thumbnail
第一步:建立核心資料庫和數據收集流程
Thumbnail
本文原先刊於我的痞克邦部落格,連結如下: 如何在家免費獲取看六萬五千本電子書的方式(10分鐘完成)-Wana的知識糖|痞客邦 https://wana1128.pixnet.net/blog/post/49557349
Thumbnail
本文原先刊於我的痞克邦部落格,連結如下: 如何在家免費獲取看六萬五千本電子書的方式(10分鐘完成)-Wana的知識糖|痞客邦 https://wana1128.pixnet.net/blog/post/49557349
Thumbnail
步驟1,追蹤敝人頭像。 步驟2,點選出版專題,並點進君子不器。 步驟3,點選,今朝好,一杯壽酒,一卷養生書。 步驟4,再次點選,今朝好,一杯壽酒,一卷養生書。接著,按下一步。
Thumbnail
步驟1,追蹤敝人頭像。 步驟2,點選出版專題,並點進君子不器。 步驟3,點選,今朝好,一杯壽酒,一卷養生書。 步驟4,再次點選,今朝好,一杯壽酒,一卷養生書。接著,按下一步。
Thumbnail
資料集有了,模型兜好了,再來可以開始訓練了。 首先準備 train.py,下圖僅節錄部分程式碼。 圖中包含了大部分的程式和註解,整段 code 也幾乎是公版了,建議簡單看過再自己融會貫通,有問題可以根據執行時的 error log 去解決,也可以留言討論。 此時資料夾應該長這樣
Thumbnail
資料集有了,模型兜好了,再來可以開始訓練了。 首先準備 train.py,下圖僅節錄部分程式碼。 圖中包含了大部分的程式和註解,整段 code 也幾乎是公版了,建議簡單看過再自己融會貫通,有問題可以根據執行時的 error log 去解決,也可以留言討論。 此時資料夾應該長這樣
Thumbnail
拿到專案相關資料後, 先作好資料驗證5大好處
Thumbnail
拿到專案相關資料後, 先作好資料驗證5大好處
Thumbnail
Q: 承接之前的程式,做一個搜尋對話框
Thumbnail
Q: 承接之前的程式,做一個搜尋對話框
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News