- 后端(Python + Flask)lnkryy.cn
首先,我们需要设置一个基本的 Flask 应用,用于处理 HTTP 请求和响应。
app.py (Python Flask)
python
from flask import Flask, request, jsonify
import sqlite3
app = Flask(name)
DATABASE = ‘shopping_mall.db’
def get_db_connection():
conn = sqlite3.connect(DATABASE)
conn.row_factory = sqlite3.Row
return conn
@app.route(‘/products’, methods=[‘GET’])
def get_products():
conn = get_db_connection()
cur = conn.cursor()
cur.execute(‘SELECT * FROM products’)
rows = cur.fetchall()
conn.close()
return jsonify([dict(row) for row in rows])
@app.route(‘/products’, methods=[‘POST’])
def add_product():
data = request.get_json()
conn = get_db_connection()
cur = conn.cursor()
cur.execute(‘INSERT INTO products (name, price, stock) VALUES (?, ?, ?)’,
(data[‘name’], data[‘price’], data[‘stock’]))
conn.commit()
conn.close()
return jsonify({‘message’: ‘Product added successfully’}), 201
if name == ‘main’:
app.run(debug=True)
2. 数据库(SQLite)
你需要创建一个 SQLite 数据库,并设置相应的表。
初始化数据库(使用 SQLite 命令行或 Python 脚本)
sql
CREATE TABLE IF NOT EXISTS products (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
price REAL NOT NULL,
stock INTEGER NOT NULL
);
3. 前端(HTML + JavaScript)
前端可以使用简单的 HTML 和 JavaScript 来发送请求到 Flask 服务器。
index.html
html
Product List
<script>
$(document).ready(function() {
fetchProducts();
});
function fetchProducts() {
$.get('/products', function(data) {
$('#product-list').empty();
data.forEach(function(product) {
$('#product-list').append(`<li>${product.name} -
$$
{product.price} - Stock: ${product.stock}`);
});
});
}
// Example of adding a product (not fully implemented in HTML)
// You would typically have a form with inputs and a submit button
// function addProduct() {
// var name = $('#name').val();
// var price = $('#price').val();
// var stock = $('#stock').val();
// $.post('/products', {name: name, price: price, stock: stock}, function(response) {
// alert(response.message);
// fetchProducts(); // Refresh the list
// });
// }
</script>
请注意,上述代码仅为示例,实际开发中你可能需要添加更多的功能,如用户认证、购物车处理、支付集成等。此外,对于大规模应用,你可能还需要考虑使用更强大的后端框架(如 Django)和数据库(如 PostgreSQL 或 MySQL)。由于直接在这里完整实现一个购物商城的代码过于庞大和复杂,我将为你提供一个简化的购物商城模型框架,使用几种流行的编程语言来实现其核心部分:后端(Python 使用 Flask 框架)、前端(HTML + JavaScript)以及数据库(SQLite)。
- 后端(Python + Flask)
首先,我们需要设置一个基本的 Flask 应用,用于处理 HTTP 请求和响应。
app.py (Python Flask)
python
from flask import Flask, request, jsonify
import sqlite3
app = Flask(name)
DATABASE = ‘shopping_mall.db’
def get_db_connection():
conn = sqlite3.connect(DATABASE)
conn.row_factory = sqlite3.Row
return conn
@app.route(‘/products’, methods=[‘GET’])
def get_products():
conn = get_db_connection()
cur = conn.cursor()
cur.execute(‘SELECT * FROM products’)
rows = cur.fetchall()
conn.close()
return jsonify([dict(row) for row in rows])
@app.route(‘/products’, methods=[‘POST’])
def add_product():
data = request.get_json()
conn = get_db_connection()
cur = conn.cursor()
cur.execute(‘INSERT INTO products (name, price, stock) VALUES (?, ?, ?)’,
(data[‘name’], data[‘price’], data[‘stock’]))
conn.commit()
conn.close()
return jsonify({‘message’: ‘Product added successfully’}), 201
if name == ‘main’:
app.run(debug=True)
2. 数据库(SQLite)
你需要创建一个 SQLite 数据库,并设置相应的表。
初始化数据库(使用 SQLite 命令行或 Python 脚本)
sql
CREATE TABLE IF NOT EXISTS products (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
price REAL NOT NULL,
stock INTEGER NOT NULL
);
3. 前端(HTML + JavaScript)
前端可以使用简单的 HTML 和 JavaScript 来发送请求到 Flask 服务器。
index.html
html
Product List
<script>
$(document).ready(function() {
fetchProducts();
});
function fetchProducts() {
$.get('/products', function(data) {
$('#product-list').empty();
data.forEach(function(product) {
$('#product-list').append(`<li>${product.name} -
$$
{product.price} - Stock: ${product.stock}`);
});
});
}
// Example of adding a product (not fully implemented in HTML)
// You would typically have a form with inputs and a submit button
// function addProduct() {
// var name = $('#name').val();
// var price = $('#price').val();
// var stock = $('#stock').val();
// $.post('/products', {name: name, price: price, stock: stock}, function(response) {
// alert(response.message);
// fetchProducts(); // Refresh the list
// });
// }
</script>
请注意,上述代码仅为示例,实际开发中你可能需要添加更多的功能,如用户认证、购物车处理、支付集成等。此外,对于大规模应用,你可能还需要考虑使用更强大的后端框架(如 Django)和数据库(如 PostgreSQL 或 MySQL)。