ساخت سیستم مدیریت دسته‌بندی‌ها با پایتون و توسعه وب

ساخت سیستم مدیریت دسته‌بندی‌ها با پایتون و توسعه وب

در توسعه وب، سازماندهی محتوا یکی از مهم‌ترین جنبه‌هاست. دسته‌بندی‌ها نقش کلیدی در این سازماندهی ایفا می‌کنند و به کاربران کمک می‌کنند تا به راحتی اطلاعات مورد نیاز خود را پیدا کنند. این مقاله به بررسی نحوه ساخت یک سیستم مدیریت دسته‌بندی‌ها با استفاده از پایتون و فریم‌ورک‌های توسعه وب مرتبط می‌پردازد. این آموزش در دسته ‘توسعه وب با پایتون’ قرار می‌گیرد و برای توسعه‌دهندگانی که قصد دارند قابلیت‌های مدیریت دسته‌بندی را به وب‌سایت‌های خود اضافه کنند، مفید خواهد بود.

مقدمه

یک سیستم مدیریت دسته‌بندی (Category Management System) به شما امکان می‌دهد تا دسته‌بندی‌های مختلفی را ایجاد، ویرایش و حذف کنید. این دسته‌بندی‌ها می‌توانند برای سازماندهی مقالات، محصولات، یا هر نوع محتوای دیگری در وب‌سایت شما استفاده شوند. یک سیستم خوب مدیریت دسته‌بندی باید ویژگی‌های زیر را داشته باشد:

  • قابلیت ایجاد دسته‌بندی‌های جدید
  • قابلیت ویرایش اطلاعات دسته‌بندی‌ها (نام، توضیحات، ترتیب نمایش و غیره)
  • قابلیت حذف دسته‌بندی‌ها
  • امکان ایجاد ساختار درختی از دسته‌بندی‌ها (دسته‌بندی‌های اصلی و زیردسته‌بندی‌ها)
  • امکان اختصاص دسته‌بندی‌ها به محتوا

انتخاب فریم‌ورک پایتون

برای ساخت این سیستم، می‌توان از فریم‌ورک‌های مختلف پایتون استفاده کرد. دو فریم‌ورک محبوب Django و Flask هستند. Django یک فریم‌ورک فول‌استک است که ابزارهای زیادی را برای توسعه وب فراهم می‌کند، در حالی که Flask یک فریم‌ورک سبک‌تر و انعطاف‌پذیرتر است. انتخاب فریم‌ورک به نیازهای پروژه شما بستگی دارد. برای پروژه‌های بزرگ و پیچیده، Django گزینه مناسب‌تری است، در حالی که برای پروژه‌های کوچک و ساده، Flask می‌تواند کافی باشد. در این آموزش، فرض می‌کنیم که از Flask استفاده می‌کنیم، زیرا سادگی آن به درک مفاهیم اصلی کمک می‌کند.

طراحی پایگاه داده

برای ذخیره اطلاعات دسته‌بندی‌ها، به یک پایگاه داده نیاز داریم. می‌توان از پایگاه داده‌های مختلفی مانند SQLite، MySQL، PostgreSQL و غیره استفاده کرد. SQLite یک پایگاه داده سبک و فایل‌محور است که برای پروژه‌های کوچک مناسب است. در اینجا، یک طراحی ساده برای پایگاه داده SQLite ارائه می‌دهیم:

جدول categories:

  • id (INTEGER PRIMARY KEY AUTOINCREMENT): شناسه یکتا برای هر دسته‌بندی
  • name (TEXT NOT NULL): نام دسته‌بندی
  • description (TEXT): توضیحات دسته‌بندی
  • parent_id (INTEGER): شناسه دسته‌بندی والد (برای ایجاد ساختار درختی)
  • order (INTEGER): ترتیب نمایش دسته‌بندی

پیاده‌سازی سیستم مدیریت دسته‌بندی‌ها با Flask

در این بخش، نحوه پیاده‌سازی سیستم مدیریت دسته‌بندی‌ها با استفاده از Flask و SQLite را بررسی می‌کنیم.

راه‌اندازی پروژه

ابتدا، یک پروژه Flask جدید ایجاد کنید:

mkdir category_management
cd category_management
python3 -m venv venv
source venv/bin/activate
pip install flask flask-sqlalchemy

ایجاد مدل دسته‌بندی

یک فایل به نام models.py ایجاد کنید و مدل دسته‌بندی را در آن تعریف کنید:

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

class Category(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), nullable=False)
    description = db.Column(db.Text)
    parent_id = db.Column(db.Integer, db.ForeignKey('category.id'))
    order = db.Column(db.Integer)

    parent = db.relationship("Category", remote_side=[id])

    def __repr__(self):
        return f''

ایجاد فایل اصلی برنامه

یک فایل به نام app.py ایجاد کنید و برنامه Flask را در آن تعریف کنید:

from flask import Flask, render_template, request, redirect, url_for
from models import db, Category

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///categories.db'
db.init_app(app)

with app.app_context():
    db.create_all()

@app.route('/')
def index():
    categories = Category.query.all()
    return render_template('index.html', categories=categories)

@app.route('/add', methods=['GET', 'POST'])
def add_category():
    if request.method == 'POST':
        name = request.form['name']
        description = request.form['description']
        parent_id = request.form.get('parent_id')
        order = request.form.get('order', 0)

        new_category = Category(name=name, description=description, parent_id=parent_id, order=order)
        db.session.add(new_category)
        db.session.commit()
        return redirect(url_for('index'))
    return render_template('add.html')

@app.route('/edit/', methods=['GET', 'POST'])
def edit_category(category_id):
    category = Category.query.get_or_404(category_id)
    if request.method == 'POST':
        category.name = request.form['name']
        category.description = request.form['description']
        category.parent_id = request.form.get('parent_id')
        category.order = request.form.get('order', 0)
        db.session.commit()
        return redirect(url_for('index'))
    return render_template('edit.html', category=category)

@app.route('/delete/')
def delete_category(category_id):
    category = Category.query.get_or_404(category_id)
    db.session.delete(category)
    db.session.commit()
    return redirect(url_for('index'))

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

ایجاد قالب‌ها (Templates)

فایل‌های HTML برای نمایش رابط کاربری ایجاد کنید. به عنوان مثال، index.html برای نمایش لیست دسته‌بندی‌ها، add.html برای افزودن دسته‌بندی جدید، و edit.html برای ویرایش دسته‌بندی‌ها.

index.html:




    مدیریت دسته‌بندی‌ها


    

دسته‌بندی‌ها

افزودن دسته‌بندی جدید
    {% for category in categories %}
  • {{ category.name }} - ویرایش - حذف
  • {% endfor %}

add.html:




    افزودن دسته‌بندی جدید


    

افزودن دسته‌بندی جدید








ندارد {% for category in categories %} {{ category.name }} {% endfor %}




edit.html:




    ویرایش دسته‌بندی


    

ویرایش دسته‌بندی








ندارد {% for cat in categories %} {{ cat.name }} {% endfor %}




اجرای برنامه

با اجرای برنامه Flask، می‌توانید به رابط کاربری سیستم مدیریت دسته‌بندی‌ها دسترسی پیدا کنید. با استفاده از این رابط کاربری، می‌توانید دسته‌بندی‌های جدید ایجاد کنید، اطلاعات دسته‌بندی‌ها را ویرایش کنید و دسته‌بندی‌ها را حذف کنید.

نتیجه‌گیری

در این مقاله، نحوه ساخت یک سیستم مدیریت دسته‌بندی‌ها با استفاده از پایتون و Flask را بررسی کردیم. این سیستم می‌تواند به شما کمک کند تا محتوای وب‌سایت خود را به طور موثر سازماندهی کنید و تجربه کاربری بهتری را برای بازدیدکنندگان خود فراهم کنید. با استفاده از این آموزش، می‌توانید یک پایه قوی برای ساخت سیستم‌های مدیریت دسته‌بندی‌های پیچیده‌تر ایجاد کنید.

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *