分享一套锋哥原创的基于Python的在线购物商城(电商)系统(flask+vue3),非常优质,界面非常好看,功能齐全

13 阅读2分钟

大家好,我是python222_小锋老师,分享一套锋哥原创的的基于Python的在线购物商城(电商)系统(flask+vue3),非常优质,界面非常好看,功能齐全  。  

2.jpg

项目简介

随着互联网技术的飞速发展和电子商务的日益普及,网上购物已经成为人们日常生活中不可或缺的一部分。为了满足用户便捷购物和商家高效管理的需求,本文设计并实现了一个基于Python Flask框架的网上商城系统。

本系统采用前后端分离的架构设计,后端使用Python Flask框架提供RESTful API接口,前端用户界面采用HTML5、CSS3和JavaScript实现,管理后台采用Vue 3框架配合Element Plus组件库开发,数据存储使用MySQL关系型数据库。系统实现了完整的电商业务流程,包括用户注册登录、商品浏览搜索、购物车管理、订单管理、收货地址管理、商品评价等前台功能,以及商品管理、分类管理、订单处理、用户管理、轮播图管理、评价管理等后台管理功能。

本文首先对系统进行了详细的需求分析,明确了系统的功能需求和非功能需求;然后进行了系统设计,包括系统架构设计、数据库设计和接口设计;接着完成了系统的编码实现;最后对系统进行了功能测试,验证了系统各项功能的正确性和可用性。

测试结果表明,本系统功能完善、运行稳定、界面友好,能够满足网上商城的基本业务需求,具有一定的实用价值和推广意义。

源码下载

链接: pan.baidu.com/s/1gpb93zoe…

提取码: 1234

相关截图

1.jpg

3.jpg

4.jpg

6.jpg

7.jpg

8.jpg

9.jpg

核心代码

from flask import Blueprint, request  
from models import db, Review, Product, User  
from utils.response import success, error, page_data  
from utils.auth import admin_required  
from config import Config  
  
admin_review_bp = Blueprint('admin_review', __name__, url_prefix='/api/admin')  
  
  
@admin_review_bp.route('/reviews', methods=['GET'])  
@admin_required  
def get_reviews():  
"""获取评论列表(管理端)"""  
page = request.args.get('page', 1, type=int)  
per_page = request.args.get('per_page', Config.ADMIN_PER_PAGE, type=int)  
status = request.args.get('status', type=int)  
keyword = request.args.get('keyword', '').strip()  
  
query = Review.query  
  
if status is not None:  
query = query.filter_by(status=status)  
if keyword:  
# 按商品名称或评论内容搜索  
query = query.join(Product, Review.product_id == Product.id).filter(  
db.or_(  
Product.name.like(f'%{keyword}%'),  
Review.content.like(f'%{keyword}%')  
)  
)  
  
query = query.order_by(Review.created_at.desc())  
pagination = query.paginate(page=page, per_page=per_page, error_out=False)  
items = [r.to_dict() for r in pagination.items]  
return page_data(pagination, items)  
  
  
@admin_review_bp.route('/reviews/<int:review_id>/status', methods=['PUT'])  
@admin_required  
def update_review_status(review_id):  
"""修改评论状态(显示/隐藏)"""  
review = Review.query.get(review_id)  
if not review:  
return error('评论不存在')  
  
data = request.get_json()  
status = data.get('status')  
if status not in (0, 1):  
return error('状态值错误')  
  
review.status = status  
db.session.commit()  
return success(review.to_dict(), '更新成功')  
  
  
@admin_review_bp.route('/reviews/<int:review_id>', methods=['DELETE'])  
@admin_required  
def delete_review(review_id):  
"""删除评论"""  
review = Review.query.get(review_id)  
if not review:  
return error('评论不存在')  
  
db.session.delete(review)  
db.session.commit()  
return success(message='删除成功')