创建一个完整的购物商城代码涉及许多方面,包括前端、后端、数据库等,这远远超出了简短回答的范围。然而,我可以为您提供一些简单示例,展示如何使用不同编程语言实现购物商城的部分功能。请注意,这些示例非常基础,仅用于教学目的。
Python Flask (后端)
python
from flask import Flask, request, jsonify
app = Flask(__name__)
# 模拟商品数据
products = [
{"id": 1, "name": "Product 1", "price": 100},
{"id": 2, "name": "Product 2", "price": 200},
]
cart = {}
@app.route('/products', methods=['GET'])
def get_products():
return jsonify(products)
@app.route('/cart', methods=['GET'])
def get_cart():
return jsonify(cart)
@app.route('/cart', methods=['POST'])
def add_to_cart():
product_id = request.json.get('productId')
quantity = request.json.get('quantity', 1)
if product_id in cart:
cart[product_id] += quantity
else:
cart[product_id] = quantity
return jsonify({"message": "Product added to cart"})
if __name__ == '__main__':
app.run(debug=True)
JavaScript (Node.js with Express) (后端)
javascript
const express = require('express');
const app = express();
app.use(express.json());
// 模拟商品数据
const products = [
{ id: 1, name: 'Product 1', price: 100 },
{ id: 2, name: 'Product 2', price: 200 },
];
let cart = {};
app.get('/products', (req, res) => {
res.json(products);
});
app.get('/cart', (req, res) => {
res.json(cart);
});
app.post('/cart', (req, res) => {
const { productId, quantity = 1 } = req.body;
if (cart[productId]) {
cart[productId] += quantity;
} else {
cart[productId] = quantity;
}
res.json({ message: 'Product added to cart' });
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
HTML/CSS/JavaScript (前端)
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Simple Shopping Mall</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<h1>Products</h1>
<div id="product-list">
<!-- 商品列表将动态生成 -->
</div>
<button id="addToCartBtn">Add to Cart</button>
<h1>Cart</h1>
<div id="cart-list">
<!-- 购物车列表将动态生成 -->
</div>
<script>
const productList = document.getElementById('product-list');
const cartList = document.getElementById('cart-list');
let selectedProductId = null;
// 假设从后端获取商品数据
const fetchProducts = () => {
// 这里使用 AJAX 请求来模拟从服务器获取商品数据
// ...
// 假设我们有了商品数据,将其渲染到页面上
renderProducts(products);
};
const renderProducts = (products) => {
productList.innerHTML = '';
products.forEach((product) => {
const productElement = document.createElement('div');
productElement.innerText = `Product ID: ${product.id}, Name: ${product.name}, Price:
$$
{product.price}`;
productElement.addEventListener('click', () => {
selectedProductId = product.id;
});
productList.appendChild(productElement);
});
};
const addToCart = () => {
if (selectedProductId) {
// 使用 AJAX 发送请求到后端添加商品到购物车
$.ajax({
url: '/cart',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({ productId: selectedProductId, quantity: 1 }),
success: () => {
// 假设添加成功,刷新购物车列表
fetchCart();
},
});
} else {
alert('Please select a product first!');
}
};
const fetchCart = () => {
// 使用 AJAX 请求来模拟从服务器获取购物车数据
// ...
// 假设我们有了购物车数据,将其渲染到页面上
renderCart(cart);
};
const renderCart = (cart) => {
cartList.innerHTML = '';
Object.entries(cart).forEach(([productId, quantity]) => {
const cartElement = document.createElement('div');
cartElement.innerText = `Product ID: ${productId}, Quantity: ${quantity}`;
cartList.appendChild(cartElement);
});
};
// 页面加载完成后获取商品列表
window.onload = fetchProducts;
#chhas{
margin-top: 50px;
padding:hn10000.com.cn;
font-size: 18px;
cursor: 10px 20px;
}
// 绑定添加到购物车按钮的点击事件
document.getElementById('addToCartBtn').addEventListener('click', addToCart);
</script>
</body>
</html>