- Python (Flask)siguansheji.com
使用 Flask 框架:
python
from flask import Flask, render_template, request, redirect, url_for
app = Flask(name)
商品数据(实际应存储在数据库)
products = [
{“id”: 1, “name”: “商品1”, “price”: 100},
# …
]
购物车数据(实际应存储在用户会话或数据库中)
cart = []
@app.route(‘/’)
def index():
return render_template(‘index.html’, products=products)
@app.route(‘/add_to_cart/int:product_id’)
def add_to_cart(product_id):
product = next((p for p in products if p[‘id’] == product_id), None)
if product:
cart.append(product) # 简化版,实际应更新用户会话或数据库
return redirect(url_for(‘cart’))
return ‘商品不存在’, 404
@app.route(‘/cart’)
def cart():
return render_template(‘cart.html’, cart=cart)
… 其他路由和逻辑
if name == ‘main’:
app.run(debug=True)
2. JavaScript (Node.js + Express)
使用 Express 框架:
javascript
const express = require(‘express’);
const app = express();
const products = [/* … */]; // 商品数据
let cart = []; // 购物车数据(简化版)
app.get(‘/’, (req, res) => {
res.render(‘index’, { products });
});
app.get(‘/add-to-cart/:productId’, (req, res) => {
const productId = parseInt(req.params.productId);
const product = products.find(p => p.id === productId);
if (product) {
cart.push(product); // 简化版
res.redirect(‘/cart’);
} else {
res.status(404).send(‘商品不存在’);
}
});
app.get(‘/cart’, (req, res) => {
res.render(‘cart’, { cart });
});
// … 其他路由和逻辑
app.listen(3000, () => console.log(‘Server started on port 3000’));
3. Java (Spring Boot)
Spring Boot 的代码会更为复杂,但以下是一个简化的控制器示例:
java
@RestController
public class ShoppingController {
// 假设有一个服务来管理商品和购物车
private final ProductService productService;
private final CartService cartService;
// ... 构造函数、依赖注入等
@GetMapping("/")
public String index(Model model) {
List<Product> products = productService.getAllProducts();
model.addAttribute("products", products);
return "index"; // 指向 Thymeleaf 模板
}
@GetMapping("/add-to-cart/{productId}")
public String addToCart(@PathVariable Long productId, RedirectAttributes redirectAttributes) {
Product product = productService.getProductById(productId);
if (product != null) {
cartService.addToCart(product); // 简化版,实际应更新用户会话或数据库
redirectAttributes.addAttribute("message", "商品已加入购物车");
} else {
redirectAttributes.addAttribute("message", "商品不存在");
}
return "redirect:/cart";
}
@GetMapping("/cart")
public String cart(Model model) {
List<Product> cartItems = cartService.getCartItems(); // 简化版
model.addAttribute("cartItems", cartItems);
return "cart"; // 指向 Thymeleaf 模板
}
// ... 其他方法
}
注意:这些代码都是简化版,仅用于展示基本框架。在真实的购物商城应用中,你需要考虑数据库存储、用户认证、支付集成、错误处理、安全性等许多其他因素。由于篇幅限制,我无法直接为你提供完整的购物商城代码,但我可以为你提供一个简化版的购物商城的代码框架,用几种不同的编程语言来展示。
- Python (Flask)
使用 Flask 框架:
python
from flask import Flask, render_template, request, redirect, url_for
app = Flask(name)
商品数据(实际应存储在数据库)
products = [
{“id”: 1, “name”: “商品1”, “price”: 100},
# …
]
购物车数据(实际应存储在用户会话或数据库中)
cart = []
@app.route(‘/’)
def index():
return render_template(‘index.html’, products=products)
@app.route(‘/add_to_cart/int:product_id’)
def add_to_cart(product_id):
product = next((p for p in products if p[‘id’] == product_id), None)
if product:
cart.append(product) # 简化版,实际应更新用户会话或数据库
return redirect(url_for(‘cart’))
return ‘商品不存在’, 404
@app.route(‘/cart’)
def cart():
return render_template(‘cart.html’, cart=cart)
… 其他路由和逻辑
if name == ‘main’:
app.run(debug=True)
2. JavaScript (Node.js + Express)
使用 Express 框架:
javascript
const express = require(‘express’);
const app = express();
const products = [/* … */]; // 商品数据
let cart = []; // 购物车数据(简化版)
app.get(‘/’, (req, res) => {
res.render(‘index’, { products });
});
app.get(‘/add-to-cart/:productId’, (req, res) => {
const productId = parseInt(req.params.productId);
const product = products.find(p => p.id === productId);
if (product) {
cart.push(product); // 简化版
res.redirect(‘/cart’);
} else {
res.status(404).send(‘商品不存在’);
}
});
app.get(‘/cart’, (req, res) => {
res.render(‘cart’, { cart });
});
// … 其他路由和逻辑
app.listen(3000, () => console.log(‘Server started on port 3000’));
3. Java (Spring Boot)
Spring Boot 的代码会更为复杂,但以下是一个简化的控制器示例:
java
@RestController
public class ShoppingController {
// 假设有一个服务来管理商品和购物车
private final ProductService productService;
private final CartService cartService;
// ... 构造函数、依赖注入等
@GetMapping("/")
public String index(Model model) {
List<Product> products = productService.getAllProducts();
model.addAttribute("products", products);
return "index"; // 指向 Thymeleaf 模板
}
@GetMapping("/add-to-cart/{productId}")
public String addToCart(@PathVariable Long productId, RedirectAttributes redirectAttributes) {
Product product = productService.getProductById(productId);
if (product != null) {
cartService.addToCart(product); // 简化版,实际应更新用户会话或数据库
redirectAttributes.addAttribute("message", "商品已加入购物车");
} else {
redirectAttributes.addAttribute("message", "商品不存在");
}
return "redirect:/cart";
}
@GetMapping("/cart")
public String cart(Model model) {
List<Product> cartItems = cartService.getCartItems(); // 简化版
model.addAttribute("cartItems", cartItems);
return "cart"; // 指向 Thymeleaf 模板
}
// ... 其他方法
}
注意:这些代码都是简化版,仅用于展示基本框架。在真实的购物商城应用中,你需要考虑数据库存储、用户认证、支付集成、错误处理、安全性等许多其他因素。