前端 (HTML + JavaScript + CSS)mmcml.com
index.html
html
游戏商城
<script src="script.js"></script>
style.css
css
body {
font-family: Arial, sans-serif;
}
ul {
list-style-type: none;
padding: 0;
}
li {
margin: 10px 0;
padding: 10px;
background-color: #f0f0f0;
border-radius: 5px;
}
button {
padding: 5px 10px;
background-color: #007BFF;
color: white;
border: none;
border-radius: 3px;
cursor: pointer;
}
button:hover {
background-color: #0056b3;
}
script.js
javascript
// 假设从后端API获取的游戏数据(实际中应通过Ajax/Fetch获取)
const games = [
{ id: 1, name: “英雄联盟”, price: 99 },
{ id: 2, name: “守望先锋”, price: 199 },
{ id: 3, name: “我的世界”, price: 69 }
];
// 渲染游戏列表
function renderGames(games) {
const list = document.getElementById(‘gameList’);
games.forEach(game => {
const item = document.createElement(‘li’);
item.textContent = ${game.name} - 价格: ${game.price}元
;
const button = document.createElement(‘button’);
button.textContent = ‘购买’;
button.onclick = () => purchaseGame(game.id);
item.appendChild(button);
list.appendChild(item);
});
}
// 假设的购买函数(实际应向后端发送请求)
function purchaseGame(id) {
alert(购买游戏ID: ${id}
);
// 这里应添加Ajax/Fetch请求到后端API
}
// 初始渲染
renderGames(games);
后端 (Python Flask + SQLite)
首先,你需要安装Flask和SQLite的Python库(通常SQLite库已包含在Python标准库中,无需额外安装)。
app.py
python
from flask import Flask, jsonify, request, render_template
import sqlite3
app = Flask(name)
连接到SQLite数据库(如果数据库不存在,则会自动创建)
DATABASE = ‘gamestore.db’
def get_db_connection():
conn = sqlite3.connect(DATABASE)
conn.row_factory = sqlite3.Row
return conn
@app.route(‘/’)
def index():
# 从数据库获取游戏列表(这里简化为直接返回硬编码数据)
conn = get_db_connection()
cur = conn.cursor()
cur.execute(‘SELECT * FROM games’)
games = cur.fetchall()
conn.close()
# 为了简化,我们直接将行对象转换为字典
games_dict = [dict(row) for row in games]
# 在实际应用中,你会使用render_template来渲染HTML模板
# return render_template(‘index.html’, games=games_dict)
# 但为了与前端JavaScript示例保持一致,我们返回JSON
return jsonify(games_dict)
@app.route(‘/purchase/int:game_id’, methods=[‘POST’])
def purchase(game_id):
# 简单的购买逻辑
由于游戏商城的代码实现会涉及多个层面(前端、后端、数据库等),并且每种语言都有其特定的生态系统和库,我将为你提供一个简化的示例,涵盖前端(HTML + JavaScript + CSS)、后端(Python Flask)以及数据库(SQLite)的基本框架。请注意,这只是一个非常基础的示例,用于展示不同部分如何协同工作。
前端 (HTML + JavaScript + CSS)
index.html
html
游戏商城
<script src="script.js"></script>
style.css
css
body {
font-family: Arial, sans-serif;
}
ul {
list-style-type: none;
padding: 0;
}
li {
margin: 10px 0;
padding: 10px;
background-color: #f0f0f0;
border-radius: 5px;
}
button {
padding: 5px 10px;
background-color: #007BFF;
color: white;
border: none;
border-radius: 3px;
cursor: pointer;
}
button:hover {
background-color: #0056b3;
}
script.js
javascript
// 假设从后端API获取的游戏数据(实际中应通过Ajax/Fetch获取)
const games = [
{ id: 1, name: “英雄联盟”, price: 99 },
{ id: 2, name: “守望先锋”, price: 199 },
{ id: 3, name: “我的世界”, price: 69 }
];
// 渲染游戏列表
function renderGames(games) {
const list = document.getElementById(‘gameList’);
games.forEach(game => {
const item = document.createElement(‘li’);
item.textContent = ${game.name} - 价格: ${game.price}元
;
const button = document.createElement(‘button’);
button.textContent = ‘购买’;
button.onclick = () => purchaseGame(game.id);
item.appendChild(button);
list.appendChild(item);
});
}
// 假设的购买函数(实际应向后端发送请求)
function purchaseGame(id) {
alert(购买游戏ID: ${id}
);
// 这里应添加Ajax/Fetch请求到后端API
}
// 初始渲染
renderGames(games);
后端 (Python Flask + SQLite)
首先,你需要安装Flask和SQLite的Python库(通常SQLite库已包含在Python标准库中,无需额外安装)。
app.py
python
from flask import Flask, jsonify, request, render_template
import sqlite3
app = Flask(name)
连接到SQLite数据库(如果数据库不存在,则会自动创建)
DATABASE = ‘gamestore.db’
def get_db_connection():
conn = sqlite3.connect(DATABASE)
conn.row_factory = sqlite3.Row
return conn
@app.route(‘/’)
def index():
# 从数据库获取游戏列表(这里简化为直接返回硬编码数据)
conn = get_db_connection()
cur = conn.cursor()
cur.execute(‘SELECT * FROM games’)
games = cur.fetchall()
conn.close()
# 为了简化,我们直接将行对象转换为字典
games_dict = [dict(row) for row in games]
# 在实际应用中,你会使用render_template来渲染HTML模板
# return render_template(‘index.html’, games=games_dict)
# 但为了与前端JavaScript示例保持一致,我们返回JSON
return jsonify(games_dict)
@app.route(‘/purchase/int:game_id’, methods=[‘POST’])
def purchase(game_id):
# 简单的购买逻辑