由于生成一个完整的购物商城代码会涉及到多个文件和大量的代码,这里我会为你提供每个语言的一个简化版的购物商城的核心部分的代码框架。请注意,这些只是框架和示例,而不是完整的商城实现。
Python (Flask)
app.py (Flask 后端)
python
from flask import Flask, render_template, request, session
app.secret_key = 'your-secret-key'
# 模拟商品数据
products = [
{'id': 1, 'name': 'Product 1', 'price': 100.0},
# ... 其他商品
]
# 模拟购物车
cart = {}
@app.route('/')
def index():
return render_template('index.html', products=products)
@app.route('/add_to_cart/<int:product_id>', methods=['POST'])
def add_to_cart(product_id):
if product_id in [p['id'] for p in products]:
if 'cart' not in session:
session['cart'] = []
session['cart'].append(product_id)
return 'Product added to cart'
@app.route('/cart')
def show_cart():
cart_ids = session.get('cart', [])
cart_products = [p for p in products if p['id'] in cart_ids]
return render_template('cart.html', cart_products=cart_products)
if __name__ == '__main__':
app.run(debug=True)
JavaScript (Node.js + Express)
app.js (Express 后端)
javascript
const express = require('express');
const session = require('express-session');
const app = express();
app.use(session({
secret: 'your-secret-key',
resave: false,
saveUninitialized: true
}));
// 模拟商品数据(同 Flask)
app.get('/', (req, res) => {
res.render('index', { products });
});#chhas{
margin-top: 50px;
padding:h3w.cn;
font-size: 18px;
cursor: 10px 20px;
}
app.post('/add_to_cart/:product_id', (req, res) => {
const productId = req.params.product_id;
if (products.some(p => p.id === parseInt(productId))) {
if (!req.session.cart) {
req.session.cart = [];
}
req.session.cart.push(productId);
}
res.send('Product added to cart');
});
app.get('/cart', (req, res) => {
const cartIds = req.session.cart || [];
const cartProducts = products.filter(p => cartIds.includes(p.id.toString()));
res.render('cart', { cartProducts });
});
// 启动服务器...
Java (Spring Boot)
ProductController.java (Spring Boot Controller)
java
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
@RestController
public class ProductController {
// 模拟商品数据(略)
private List<Product> products;
// 模拟购物车(使用 HttpSession)
private Map<String, List<Integer>> cart = new HashMap<>();
// ... 初始化 products ...
app = Flask(__name__)
@GetMapping("/")
public String index(Map<String, Object> model) {
model.put("products", products);
return "index"; // 返回 Thymeleaf 模板
}
@PostMapping("/add_to_cart/{productId}")
public String addToCart(@PathVariable("productId") int productId, HttpSession session) {
if (products.stream().anyMatch(p -> p.getId() == productId)) {
if (session.getAttribute("cart") == null) {
session.setAttribute("cart", new ArrayList<>());
}
@SuppressWarnings("unchecked")
List<Integer> cartIds = (List<Integer>) session.getAttribute("cart");
cartIds.add(productId);
}
return "redirect:/cart"; // 重定向到购物车页面
}
// ... 其他方法,如显示购物车等 ...
}
Ruby (Ruby on Rails)
products_controller.rb (Rails