一、介绍
电商购物系统Python,基于Flask框架实现。
实现用户查看商品、购买商品、添加购物车、商城订单、编辑个人信息、点击喜欢不喜欢等、商品评论、登录注册、查看物流信息等功能。
实现商家发布商品、查看销售列表、管理商品、物流信息更新、个人信息修改等功能。
二、效果展示
三、演示视频
视频+代码:https://www.yuque.com/ziwu/yygu3z/snkqwdm1wwbyfrfs
四、Flask介绍
Flask是一个轻量级的Python Web框架,具有以下特点:
- 简洁而灵活:Flask的设计理念是保持简单和可扩展性。它提供了基本的功能和组件,但没有过多的限制和约束,让开发者能够根据自己的需求进行灵活的定制和扩展。
- 易于学习和使用:Flask的API简单易懂,文档清晰明了,使得初学者能够快速上手。它没有繁琐的配置,开发者可以根据需要选择使用的插件和工具,减少了学习和使用的难度。
- 路由和视图处理:Flask使用装饰器机制来定义路由和视图函数,使得编写和管理路由变得简单明了。开发者可以通过装饰器将URL路径与对应的函数关联起来,从而处理不同的请求并返回相应的响应。
- 模板引擎支持:Flask集成了Jinja2模板引擎,它可以将动态数据与静态模板文件进行结合,生成最终的HTML页面。模板引擎支持模板继承、条件判断、循环迭代等功能,使得开发者能够更好地组织和管理页面的展示逻辑。
- 轻量级而高效:由于Flask的设计简单,它的运行开销相对较小,可以在资源有限的环境下高效运行。它不依赖于大型的外部库或框架,因此可以更好地控制和优化应用程序的性能。
- RESTful支持:Flask对于构建RESTful风格的API提供了良好的支持。通过结合Flask的路由和视图处理机制,开发者可以轻松地创建和管理API端点,实现资源的增删改查操作。
- 扩展性和生态系统:Flask提供了丰富的扩展库和插件,可以方便地集成第三方功能和服务。例如,Flask-SQLAlchemy用于数据库操作,Flask-WTF用于表单验证,Flask-Login用于用户认证等。这些扩展库遵循Flask的设计理念,提供简洁的API和良好的文档。
- 社区支持和活跃度:Flask拥有庞大而活跃的开发者社区,提供了大量的文档、教程和示例代码。开发者可以从社区中获取支持和解决问题,也可以贡献自己的扩展和插件,促进了Flask框架的发展和演进。
下面是一个使用Flask框架实现商城系统的简单例子:
from flask import Flask, render_template, request, redirect
app = Flask(__name__)
# 商品列表
products = [
{"id": 1, "name": "商品1", "price": 10},
{"id": 2, "name": "商品2", "price": 20},
{"id": 3, "name": "商品3", "price": 30}
]
# 购物车
cart = []
@app.route("/")
def index():
return render_template("index.html", products=products, cart=cart)
@app.route("/add_to_cart", methods=["POST"])
def add_to_cart():
product_id = int(request.form.get("product_id"))
product = next((p for p in products if p["id"] == product_id), None)
if product:
cart.append(product)
return redirect("/")
@app.route("/checkout")
def checkout():
total_price = sum(product["price"] for product in cart)
return render_template("checkout.html", cart=cart, total_price=total_price)
@app.route("/clear_cart")
def clear_cart():
cart.clear()
return redirect("/")
if __name__ == "__main__":
app.run()
在上述代码中,我们首先导入了Flask类和其他必要的模块。然后,我们创建了一个Flask应用程序实例,并定义了两个全局变量products和cart,分别代表商品列表和购物车。
接下来,我们定义了四个路由处理函数。index()函数处理首页的请求,使用render_template()函数渲染了一个名为index.html的模板,并将商品列表和购物车传递给模板进行展示。
add_to_cart()函数处理添加商品到购物车的请求,从请求中获取商品的ID,并使用列表推导式在商品列表中查找对应的商品。如果找到了对应的商品,就将其添加到购物车,并重定向到首页。
checkout()函数处理结算页面的请求,计算购物车中商品的总价格,并将购物车和总价格传递给checkout.html模板进行展示。
clear_cart()函数处理清空购物车的请求,通过调用clear()方法清空购物车,并重定向到首页。
最后,通过检查__name__是否为__main__,我们确保脚本作为主程序运行时才启动Flask应用程序。
需要注意的是,上述代码中的路由处理函数使用了@app.route装饰器,这样可以方便地将URL路径与对应的函数关联起来。render_template()函数用于渲染模板文件,request对象用于访问请求数据,redirect()函数用于重定向到其他URL。