web+flask+sqlite网络商城
时间: 2025-07-05 15:08:36 浏览: 0
### 使用 Flask 和 SQLite 构建 Web 网络商城
#### 创建项目结构
为了构建一个简单的基于Web的网络商城,首先需要建立项目的目录结构:
```
flask_shop/
│
├── app.py # 主应用文件
├── templates/ # HTML模板文件夹
│ └── index.html # 首页模板
└── static/ # CSS, JavaScript和其他静态资源
├── css/
│ └── style.css
└── js/
└── script.js
```
#### 安装依赖包
确保已经安装了必要的Python库。可以通过以下命令安装Flask和SQLAlchemy:
```bash
pip install flask sqlalchemy
```
#### 初始化数据库模型
定义商品的数据表结构,在`app.py`中加入如下代码初始化SQLite数据库并创建产品类。
```python
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
# 设置数据库URI为sqlite:///shop.db表示相对路径下的shop.db文件
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///shop.db'
db = SQLAlchemy(app)
class Product(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
price = db.Column(db.Float, nullable=False)
description = db.Column(db.Text)
with app.app_context():
db.create_all()
```
这段代码设置了SQLAlchemy配置项,并定义了一个名为Product的产品数据模型[^3]。
#### 添加路由处理函数
继续编辑`app.py`, 增加用于展示所有产品的视图逻辑。
```python
@app.route('/')
def home():
products = Product.query.all()
return render_template('index.html', products=products)
if __name__ == '__main__':
app.run(debug=True)
```
此部分实现了主页加载时查询全部商品列表并通过Jinja2渲染给前端页面的功能[^1]。
#### 编写HTML模板
最后一步是在templates文件夹下新建`index.html`文件用来显示商品信息。
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Shop</title>
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
</head>
<body>
<h1>Welcome to Our Shop!</h1>
<div class="product-list">
{% for product in products %}
<div class="product-item">
<p><strong>{{ product.name }}</strong></p>
<p>${{ "%.2f"|format(product.price) }}</p>
<p>{{ product.description|truncate(100) }}</p>
</div>
{% endfor %}
</div>
<script src="{{ url_for('static', filename='js/script.js') }}"></script>
</body>
</html>
```
上述HTML片段利用了Jinja2模版引擎特性来循环遍历传入的商品对象集合,并将其属性值嵌套至相应位置上。
阅读全文
相关推荐


















