1. 项目背景与核心需求
艺术拍卖文化交流平台作为连接艺术家、收藏家和爱好者的桥梁,在数字化时代迎来了新的发展机遇。这个基于Flask和微信小程序的Android平台项目,正是为了解决传统艺术品交易中的地域限制、信息不对称等问题而设计的。
我在开发这个项目时,主要考虑了以下几个核心需求:
- 为艺术品提供线上展示和竞拍渠道
- 构建用户间的文化交流社区
- 实现跨平台访问(微信小程序+Android原生应用)
- 确保交易过程的安全性和可靠性
平台采用前后端分离架构,后端使用Python Flask框架提供RESTful API,前端则同时支持微信小程序和Android原生应用。这种架构选择既能利用微信生态的流量优势,又能通过Android应用提供更丰富的功能体验。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术选型与架构设计
2.1 后端技术栈
选择Flask作为后端框架主要基于以下考虑:
- 轻量灵活:相比Django,Flask更适合构建中小型API服务
- 扩展性强:通过Flask扩展可以轻松实现JWT认证、ORM等功能
- Python生态:丰富的数据处理和AI库便于后期加入智能推荐功能
核心依赖库包括:
- Flask-RESTful:用于构建RESTful API
- Flask-SQLAlchemy:数据库ORM
- Flask-JWT-Extended:用户认证
- Flask-CORS:处理跨域请求
2.2 数据库设计
采用MySQL作为主数据库,主要表结构设计如下:
用户表(users)
sql复制CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
password_hash VARCHAR(128) NOT NULL,
email VARCHAR(120) UNIQUE NOT NULL,
phone VARCHAR(20),
avatar_url VARCHAR(255),
balance DECIMAL(12,2) DEFAULT 0.00,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
艺术品表(artworks)
sql复制CREATE TABLE artworks (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
description TEXT,
artist_id INT NOT NULL,
category VARCHAR(50),
starting_price DECIMAL(12,2) NOT NULL,
current_price DECIMAL(12,2),
auction_end TIMESTAMP NOT NULL,
status ENUM('pending','active','sold','canceled') DEFAULT 'pending',
image_urls JSON,
FOREIGN KEY (artist_id) REFERENCES users(id)
);
竞拍记录表(bids)
sql复制CREATE TABLE bids (
id INT AUTO_INCREMENT PRIMARY KEY,
artwork_id INT NOT NULL,
user_id INT NOT NULL,
amount DECIMAL(12,2) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (artwork_id) REFERENCES artworks(id),
FOREIGN KEY (user_id) REFERENCES users(id)
);
提示:艺术品表使用JSON类型存储图片URL数组,既避免了多表关联查询的复杂度,又保持了灵活性。对于需要严格关
