- Python (Flask + SQLAlchemy)
后端 (Flask API):
python
from flask import Flask, jsonify, request
from flask_sqlalchemy import SQLAlchemy
app = Flask(name)
app.config[‘SQLALCHEMY_DATABASE_URI’] = ‘sqlite:tmp/test.db’
db = SQLAlchemy(app)
class Product(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50), nullable=False)
price = db.Column(db.Float, nullable=False)
@app.route(‘/products’, methods=[‘GET’])
def get_products():
products = Product.query.all()
return jsonify([{‘id’: p.id, ‘name’: p.name, ‘price’: p.price} for p in products])
if name == ‘main’:
db.create_all()
app.run(debug=True)
前端 (JavaScript + HTML 使用 Fetch API):yangzhie289.com
html
Products
<script>
fetch('/products')
.then(response => response.json())
.then(data => {
const productList = document.getElementById('product-list');
data.forEach(product => {
const li = document.createElement('li');
li.textContent = `${product.name} -
$$
{product.price.toFixed(2)}`;
productList.appendChild(li);
});
})
.catch(error => console.error(‘Error:’, error));
javascript
const express = require(‘express’);
const mongoose = require(‘mongoose’);
const app = express();
const port = 3000;
mongoose.connect(‘mongodb://localhost/shop’, { useNewUrlParser: true, useUnifiedTopology: true });
const ProductSchema = new mongoose.Schema({
name: String,
price: Number
});
const Product = mongoose.model(‘Product’, ProductSchema);
app.get(‘/products’, async (req, res) => {
const products = await Product.find();
res.json(products);
});
app.listen(port, () => {
console.log(App listening at http://localhost:${port}
);
});
前端 (与 Python 示例中的前端相同)
- Java (Spring Boot + JPA)
后端 (Spring Boot Controller):
java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class ProductController {
private final ProductRepository productRepository;
@Autowired
public ProductController(ProductRepository productRepository) {
this.productRepository = productRepository;
}
@GetMapping("/products")
public List<Product> getProducts() {
return productRepository.findAll();
}
}
实体 (JPA Entity):
java
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private double price;
// 构造器、getter、setter等
}
**前端 (与 Python 示例中的前端