- Python (Flask 框架)
python
from flask import Flask, render_template, request, session
app = Flask(name)
app.secret_key = ‘your_secret_key’
假设的商品数据
products = [
{‘id’: 1, ‘name’: ‘Product 1’, ‘price’: 100},
# … 其他商品
]
购物车(存储在 session 中)
@app.route(‘/cart’, methods=[‘GET’, ‘POST’])
def cart():
if ‘cart’ not in session:
session[‘cart’] = []
if request.method == ‘POST’:
product_id = int(request.form[‘product_id’])
session[‘cart’].append(product_id)
return render_template(‘cart.html’, cart=session[‘cart’], products=products)
商品列表
@app.route(‘/products’)
def products():
return render_template(‘products.html’, products=products)
更多路由和模板…
if name == ‘main’:
app.run(debug=True)
2. JavaScript (Node.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 }));
let products = [
{ id: 1, name: ‘Product 1’, price: 100 },
// … 其他商品
];
app.post(‘/cart’, (req, res) => {
if (!req.session.cart) req.session.cart = [];
req.session.cart.push(req.body.product_id);
res.send(‘Added to cart’);
});
app.get(‘/products’, (req, res) => {
res.send(products); // 实际中可能是渲染模板
});
// 更多路由和中间件…
app.listen(3000, () => console.log(‘Server started on port 3000’));
3. Java (Spring Boot)
Java 的 Spring Boot 示例将需要多个文件和配置,但这里是一个简单的 Controller 示例:
java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
@Controller
public class ShopController {
private List<Product> products = new ArrayList<>(); // 假设的商品数据
// ... 初始化 products ...
@PostMapping("/cart")
public String addToCart(@RequestParam int productId, HttpSession session) {
List<Integer> cart = (List<Integer>) session.getAttribute("cart");
if (cart == null) {
cart = new ArrayList<>();
session.setAttribute("cart", cart);
}
cart.add(productId);
return "redirect:/cart"; // 假设有一个 cart.html 视图
}
@GetMapping("/products")
public String showProducts(Model model) {
model.addAttribute("products", products);
return "products"; // 假设有一个 products.html 视图
}
// ... 其他方法和类,如 Product 类和购物车服务的实现 ...
}
注意:
这些示例都非常基础,并且没有涵盖错误处理、用户认证、数据库交互等重要方面。
对于真实世界的购物商城,你还需要考虑前端界面(HTML/CSS/JavaScript)、数据库设计、支付集成、安全性、性能优化等众多其他因素。由于生成一个完整的购物商城代码是一个庞大的项目,这里我将为你提供每个语言的一个简单示例或框架,这些示例将涵盖商城的一些基本功能,如商品列表、购物车和简单结算。
- Python (Flask 框架)
python
from flask import Flask, render_template, request, session
app = Flask(name)
app.secret_key = ‘your_secret_key’
假设的商品数据
products = [
{‘id’: 1, ‘name’: ‘Product 1’, ‘price’: 100},
# … 其他商品
]
购物车(存储在 session 中)
@app.route(‘/cart’, methods=[‘GET’, ‘POST’])
def cart():
if ‘cart’ not in session:
session[‘cart’] = []
if request.method == ‘POST’:
product_id = int(request.form[‘product_id’])
session[‘cart’].append(product_id)
return render_template(‘cart.html’, cart=session[‘cart’], products=products)
商品列表
@app.route(‘/products’)
def products():
return render_template(‘products.html’, products=products)
更多路由和模板…
if name == ‘main’:
app.run(debug=True)
2. JavaScript (Node.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 }));
let products = [
{ id: 1, name: ‘Product 1’, price: 100 },
// … 其他商品
];
app.post(‘/cart’, (req, res) => {
if (!req.session.cart) req.session.cart = [];
req.session.cart.push(req.body.product_id);
res.send(‘Added to cart’);
});
app.get(‘/products’, (req, res) => {
res.send(products); // 实际中可能是渲染模板
});
// 更多路由和中间件…
app.listen(3000, () => console.log(‘Server started on port 3000’));
3. Java (Spring Boot)
Java 的 Spring Boot 示例将需要多个文件和配置,但这里是一个简单的 Controller 示例:
java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
@Controller
public class ShopController {
private List<Product> products = new ArrayList<>(); // 假设的商品数据
// ... 初始化 products ...
@PostMapping("/cart")
public String addToCart(@RequestParam int productId, HttpSession session) {
List<Integer> cart = (List<Integer>) session.getAttribute("cart");
if (cart == null) {
cart = new ArrayList<>();
session.setAttribute("cart", cart);
}
cart.add(productId); 4er.cn
return "redirect:/cart"; // 假设有一个 cart.html 视图
}
@GetMapping("/products")
public String showProducts(Model model) {
model.addAttribute("products", products);
return "products"; // 假设有一个 products.html 视图
}
// ... 其他方法和类,如 Product 类和购物车服务的实现 ...
}
注意:
这些示例都非常基础,并且没有涵盖错误处理、用户认证、数据库交互等重要方面。
对于真实世界的购物商城,你还需要考虑前端界面(HTML/CSS/JavaScript)、数据库设计、支付集成、安全性、性能优化等众多其他因素。