- Python 后端 (Flask)shderuo.cn
首先,我们看一个简单的Flask应用,用于处理商品的增加和展示。
python
from flask import Flask, jsonify, request
app = Flask(name)
假设的商品列表
products = [
{“id”: 1, “name”: “Apple”, “price”: 1.00},
{“id”: 2, “name”: “Banana”, “price”: 0.50},
]
@app.route(‘/products’, methods=[‘GET’])
def get_products():
return jsonify(products)
@app.route(‘/products’, methods=[‘POST’])
def add_product():
data = request.json
new_product = {
“id”: len(products) + 1,
“name”: data[‘name’],
“price”: data[‘price’],
}
products.append(new_product)
return jsonify(new_product), 201
if name == ‘main’:
app.run(debug=True)
2. JavaScript 前端 (React)
这里我们使用React来展示商品列表,并使用fetch API来与Flask后端交互。
jsx
import React, { useState, useEffect } from ‘react’;
function App() {
const [products, setProducts] = useState([]);
useEffect(() => {
fetch(‘/products’)
.then(response => response.json())
.then(data => setProducts(data));
}, []);
const addProduct = (name, price) => {
fetch(‘/products’, {
method: ‘POST’,
headers: {
‘Content-Type’: ‘application/json’,
},
body: JSON.stringify({ name, price }),
})
.then(response => response.json())
.then(newProduct => {
setProducts([…products, newProduct]);
});
};
return (
Product List
{products.map(product => (
- {product.name} - ${product.price.toFixed(2)}
))}
<button onClick={() => addProduct(‘Orange’, 0.75)}>Add Orange
);
}
export default App;
3. Java 后端 (Spring Boot)
对于Java,我们使用Spring Boot来创建一个REST API。
java
@RestController
@RequestMapping(“/products”)
public class ProductController {
private static final List<Product> products = new ArrayList<>();
static {
products.add(new Product(1, "Apple", 1.00));
products.add(new Product(2, "Banana", 0.50));
}
@GetMapping
public List<Product> getAllProducts() {
return products;
}
@PostMapping
public ResponseEntity<Product> addProduct(@RequestBody Product product) {
product.setId(products.size() + 1);
products.add(product);
return ResponseEntity.created(URI.create("/products/" + product.getId()))
.body(product);
}
// Product class with getters and setters
static class Product {
private int id;
private String name;
private double price;
// Constructors, getters, and setters
}
}
请注意,这些示例仅展示了购物商城系统的基础部分,如商品的增加和列表展示。一个完整的系统还需要处理用户认证、支付集成、数据库持久化(如MySQL, MongoDB)、更复杂的路由、错误处理、前端样式等。此外,前端可以进一步使用Redux或Vuex等状态管理库来管理复杂的状态。由于篇幅和复杂性的限制,我无法在这里完全从头开始编写一个完整的购物商城系统代码,但我可以为你提供一些关键部分的示例,涵盖几种流行的编程语言:Python(使用Flask框架)、JavaScript(前端逻辑,使用React或Vue.js)、以及Java(使用Spring Boot)。
- Python 后端 (Flask)
首先,我们看一个简单的Flask应用,用于处理商品的增加和展示。
python
from flask import Flask, jsonify, request
app = Flask(name)
假设的商品列表
products = [
{“id”: 1, “name”: “Apple”, “price”: 1.00},
{“id”: 2, “name”: “Banana”, “price”: 0.50},
]
@app.route(‘/products’, methods=[‘GET’])
def get_products():
return jsonify(products)
@app.route(‘/products’, methods=[‘POST’])
def add_product():
data = request.json
new_product = {
“id”: len(products) + 1,
“name”: data[‘name’],
“price”: data[‘price’],
}
products.append(new_product)
return jsonify(new_product), 201
if name == ‘main’:
app.run(debug=True)
2. JavaScript 前端 (React)
这里我们使用React来展示商品列表,并使用fetch API来与Flask后端交互。
jsx
import React, { useState, useEffect } from ‘react’;
function App() {
const [products, setProducts] = useState([]);
useEffect(() => {
fetch(‘/products’)
.then(response => response.json())
.then(data => setProducts(data));
}, []);
const addProduct = (name, price) => {
fetch(‘/products’, {
method: ‘POST’,
headers: {
‘Content-Type’: ‘application/json’,
},
body: JSON.stringify({ name, price }),
})
.then(response => response.json())
.then(newProduct => {
setProducts([…products, newProduct]);
});
};
return (
Product List
{products.map(product => (
- {product.name} - ${product.price.toFixed(2)}
))}
<button onClick={() => addProduct(‘Orange’, 0.75)}>Add Orange
);
}
export default App;
3. Java 后端 (Spring Boot)
对于Java,我们使用Spring Boot来创建一个REST API。
java
@RestController
@RequestMapping(“/products”)
public class ProductController {
private static final List<Product> products = new ArrayList<>();
static {
products.add(new Product(1, "Apple", 1.00));
products.add(new Product(2, "Banana", 0.50));
}
@GetMapping
public List<Product> getAllProducts() {
return products;
}
@PostMapping
public ResponseEntity<Product> addProduct(@RequestBody Product product) {
product.setId(products.size() + 1);
products.add(product);
return ResponseEntity.created(URI.create("/products/" + product.getId()))
.body(product);
}
// Product class with getters and setters
static class Product {
private int id;
private String name;
private double price;
// Constructors, getters, and setters
}
}
请注意,这些示例仅展示了购物商城系统的基础部分,如商品的增加和列表展示。一个完整的系统还需要处理用户认证、支付集成、数据库持久化(如MySQL, MongoDB)、更复杂的路由、错误处理、前端样式等。此外,前端可以进一步使用Redux或Vuex等状态管理库来管理复杂的状态。