Python打造在线商品评价系统

admin 2025-01-12 171 0

在这个电商蓬勃发展的时代,商品评价系统成为了连接买家与卖家的桥梁。今天,我们将用Python语言,从零开始搭建一个简易但功能完备的在线商品评价系统。

Python打造在线商品评价系统

项目背景

随着网购的普及,用户评价成为消费者决策的重要依据。一个高效、透明的评价系统能够提升用户信任度,促进商品销售。Python以其简洁高效的语法和丰富的库支持,成为实现这一系统的理想选择。

技术选型

  1. 后端框架:Flask
  2. 数据库:SQLite
  3. 前端展示:HTML + CSS + JavaScript

系统功能

  1. 用户注册登录:用户可以通过注册账号进行登录。
  2. 商品展示:展示商品的基本信息。
  3. 评价提交:用户可以对商品进行评价。
  4. 评价展示:展示所有用户对商品的评价。

实现步骤

1. 环境搭建

首先,确保已安装Python环境。然后,安装Flask库:

pip install Flask

2. 创建项目结构

product-review-system/
│
├── app.py
├── templates/
│   ├── index.html
│   ├── login.html
│   ├── register.html
│   └── product.html
└── static/
    └── style.css

3. 数据库设计

使用SQLite创建一个简单的数据库,包含用户和评价表:

import sqlite3

def create_db():
    conn = sqlite3.connect('review.db')
    c = conn.cursor()
    c.execute('''CREATE TABLE users (id INTEGER PRIMARY KEY, username TEXT, password TEXT)''')
    c.execute('''CREATE TABLE reviews (id INTEGER PRIMARY KEY, user_id INTEGER, product_id INTEGER, content TEXT, rating INTEGER, FOREIGN KEY(user_id) REFERENCES users(id))''')
    conn.commit()
    conn.close()

create_db()

4. 后端逻辑

app.py中,编写Flask应用的核心逻辑:

from flask import Flask, render_template, request, redirect, url_for, session
import sqlite3

app = Flask(__name__)
app.secret_key = 'your_secret_key'

def get_db_connection():
    conn = sqlite3.connect('review.db')
    conn.row_factory = sqlite3.Row
    return conn

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        conn = get_db_connection()
        user = conn.execute('SELECT * FROM users WHERE username = ? AND password = ?', (username, password)).fetchone()
        conn.close()
        if user:
            session['user_id'] = user['id']
            return redirect(url_for('index'))
        else:
            return 'Invalid credentials'
    return render_template('login.html')

@app.route('/register', methods=['GET', 'POST'])
def register():
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        conn = get_db_connection()
        conn.execute('INSERT INTO users (username, password) VALUES (?, ?)', (username, password))
        conn.commit()
        conn.close()
        return redirect(url_for('login'))
    return render_template('register.html')

@app.route('/product/<int:product_id>')
def product(product_id):
    conn = get_db_connection()
    reviews = conn.execute('SELECT * FROM reviews WHERE product_id = ?', (product_id,)).fetchall()
    conn.close()
    return render_template('product.html', reviews=reviews)

@app.route('/submit-review/<int:product_id>', methods=['POST'])
def submit_review(product_id):
    if 'user_id' not in session:
        return redirect(url_for('login'))
    content = request.form['content']
    rating = request.form['rating']
    conn = get_db_connection()
    conn.execute('INSERT INTO reviews (user_id, product_id, content, rating) VALUES (?, ?, ?, ?)', (session['user_id'], product_id, content, rating))
    conn.commit()
    conn.close()
    return redirect(url_for('product', product_id=product_id))

if __name__ == '__main__':
    app.run(debug=True)

5. 前端页面

templates目录下,创建相应的HTML文件,例如index.htmllogin.htmlregister.htmlproduct.html。使用简单的HTML和CSS进行页面布局和样式设计。

6. 运行测试

启动Flask应用:

python app.py

在浏览器中访问`http://127.0.0

评论(0)