小明: 嘿,小华,你知道如何在校友管理系统中添加一个商城功能吗?
小华: 当然,我们可以使用Python Flask框架来搭建这个系统。首先,我们需要定义一些基本的数据模型。
小明: 那我们应该从哪里开始呢?
小华: 我们可以从创建用户模型开始。你可以参考下面的代码:
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
小明: 明白了。那我们怎么添加商品信息呢?
小华: 我们可以创建一个商品模型,如下所示:
class Product(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(120), nullable=False)
price = db.Column(db.Float, nullable=False)
description = db.Column(db.Text, nullable=True)
小明: 这样我们就有了用户和商品的信息。接下来要怎么做呢?
小华: 接下来,我们需要创建订单模型,以便记录用户的购买行为。
class Order(db.Model):
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
product_id = db.Column(db.Integer, db.ForeignKey('product.id'), nullable=False)
quantity = db.Column(db.Integer, nullable=False)
order_date = db.Column(db.DateTime, default=datetime.utcnow)
小明: 看起来不错!那么用户怎么浏览和购买商品呢?
小华: 我们可以创建一个简单的Flask路由来展示商品列表,然后让用户提交表单进行购买操作。例如:
@app.route('/products')
def products():
products = Product.query.all()
return render_template('products.html', products=products)
@app.route('/order', methods=['POST'])
def create_order():
user_id = current_user.id
product_id = request.form['product_id']
quantity = int(request.form['quantity'])
order = Order(user_id=user_id, product_id=product_id, quantity=quantity)
db.session.add(order)
db.session.commit()
flash('Your order has been placed!')
return redirect(url_for('products'))