- 数据库(SQL)junjie8.cn
首先,我们需要一个数据库来存储商品和用户信息。这里使用MySQL的SQL语句作为示例:
sql
CREATE DATABASE GameStore;
USE GameStore;
CREATE TABLE products
(
id
INT AUTO_INCREMENT PRIMARY KEY,
name
VARCHAR(255) NOT NULL,
description
TEXT,
price
DECIMAL(10, 2) NOT NULL
);
CREATE TABLE users
(
id
INT AUTO_INCREMENT PRIMARY KEY,
username
VARCHAR(255) NOT NULL UNIQUE,
password_hash
VARCHAR(255) NOT NULL, – 存储加密后的密码
– 其他用户信息…
);
– 假设还有其他表,如订单表、购物车表等,但这里为了简洁省略了
2. 后端(多种语言示例)
Python (Flask)
python
from flask import Flask, jsonify, request
from flask_sqlalchemy import SQLAlchemy
app = Flask(name)
app.config[‘SQLALCHEMY_DATABASE_URI’] = ‘mysql+pymysql://user:password@localhost/GameStore’
db = SQLAlchemy(app)
定义模型(这里只展示Product模型)
class Product(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255), nullable=False)
description = db.Column(db.Text)
price = db.Column(db.DECIMAL(10, 2), nullable=False)
初始化数据库(实际应用中应在迁移或部署时执行)
with app.app_context():
db.create_all()
@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])
运行Flask应用(开发环境)
if name == ‘main’:
app.run(debug=True)
Node.js (Express + Sequelize)
(前面已经给出了Node.js + Sequelize的示例,这里不再重复完整代码,但结构类似。)
Java (Spring Boot)
Spring Boot项目通常包含多个文件和类,但这里只给出一个简化的Controller示例:
java
@RestController
@RequestMapping(“/products”)
public class ProductController {
@Autowired
private ProductService productService; // 假设有一个ProductService来处理业务逻辑
@GetMapping
public ResponseEntity<List<ProductDTO>> getProducts() {
List<ProductDTO> products = productService.findAllProducts(); // 调用服务层方法
return ResponseEntity.ok(products);
}
// 其他方法和注解...
}
// 注意:这里省略了ProductService、ProductRepository、Product实体类和ProductDTO(数据传输对象)的定义。
3. 前端(多种技术栈示例)
HTML + JavaScript + Fetch API
(前面已经给出了基本的HTML和Fetch API示例,适用于任何前端技术栈。)
React
React组件示例(使用Hooks和fetch API):
jsx
import React, { useState, useEffect } from ‘react’;
function ProductList() {
const [products, setProducts] = useState([]);
useEffect(() => {
fetch('/products')
.then(response => response.json())
.then(data => setProducts(data))
.catch(error => console.error('Error fetching products:', error));
}, []);
return (
<ul>
{products.map(product => (
<li key={product.id}>{product.name} -
$$
{product.price}
))}
);
}
export default ProductList;
Vue.js
Vue组件示例(使用axios进行HTTP请求):
vue
- 数据库(SQL)
首先,我们需要一个数据库来存储商品和用户信息。这里使用MySQL的SQL语句作为示例:
sql
CREATE DATABASE GameStore;
USE GameStore;
CREATE TABLE products
(
id
INT AUTO_INCREMENT PRIMARY KEY,
name
VARCHAR(255) NOT NULL,
description
TEXT,
price
DECIMAL(10, 2) NOT NULL
);
CREATE TABLE users
(
id
INT AUTO_INCREMENT PRIMARY KEY,
username
VARCHAR(255) NOT NULL UNIQUE,
password_hash
VARCHAR(255) NOT NULL, – 存储加密后的密码
– 其他用户信息…
);
– 假设还有其他表,如订单表、购物车表等,但这里为了简洁省略了
2. 后端(多种语言示例)
Python (Flask)
python
from flask import Flask, jsonify, request
from flask_sqlalchemy import SQLAlchemy
app = Flask(name)
app.config[‘SQLALCHEMY_DATABASE_URI’] = ‘mysql+pymysql://user:password@localhost/GameStore’
db = SQLAlchemy(app)
定义模型(这里只展示Product模型)
class Product(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255), nullable=False)
description = db.Column(db.Text)
price = db.Column(db.DECIMAL(10, 2), nullable=False)
初始化数据库(实际应用中应在迁移或部署时执行)
with app.app_context():
db.create_all()
@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])
运行Flask应用(开发环境)
if name == ‘main’:
app.run(debug=True)
Node.js (Express + Sequelize)
(前面已经给出了Node.js + Sequelize的示例,这里不再重复完整代码,但结构类似。)
Java (Spring Boot)
Spring Boot项目通常包含多个文件和类,但这里只给出一个简化的Controller示例:
java
@RestController
@RequestMapping(“/products”)
public class ProductController {
@Autowired
private ProductService productService; // 假设有一个ProductService来处理业务逻辑
@GetMapping
public ResponseEntity<List<ProductDTO>> getProducts() {
List<ProductDTO> products = productService.findAllProducts(); // 调用服务层方法
return ResponseEntity.ok(products);
}
// 其他方法和注解...
}
// 注意:这里省略了ProductService、ProductRepository、Product实体类和ProductDTO(数据传输对象)的定义。
3. 前端(多种技术栈示例)
HTML + JavaScript + Fetch API
(前面已经给出了基本的HTML和Fetch API示例,适用于任何前端技术栈。)
React
React组件示例(使用Hooks和fetch API):
jsx
import React, { useState, useEffect } from ‘react’;
function ProductList() {
const [products, setProducts] = useState([]);
useEffect(() => {
fetch('/products')
.then(response => response.json())
.then(data => setProducts(data))
.catch(error => console.error('Error fetching products:', error));
}, []);
return (
<ul>
{products.map(product => (
<li key={product.id}>{product.name} -
$$
{product.price}
))}
);
}
export default ProductList;
Vue.js
Vue组件示例(使用axios进行HTTP请求):
vue