ساخت سیستم مدیریت سفارش با پایتون و فریمورک Flask
در این مقاله، به آموزش ساخت یک سیستم مدیریت سفارش (Order Management System – OMS) ساده با استفاده از زبان برنامهنویسی پایتون و فریمورک وب Flask خواهیم پرداخت. این سیستم به شما امکان میدهد تا سفارشات را ثبت، ویرایش، حذف و مشاهده کنید. هدف از این آموزش، آشنایی با مفاهیم توسعه وب با پایتون و کاربرد عملی آنها در یک پروژه واقعی است. این آموزش برای افرادی که با اصول برنامهنویسی پایتون آشنایی دارند و میخواهند وارد دنیای توسعه وب شوند، مناسب است.
پیشنیازها
قبل از شروع، اطمینان حاصل کنید که موارد زیر را در سیستم خود نصب دارید:
- پایتون (نسخه 3.6 یا بالاتر)
- مدیریت بسته پایتون (pip)
- Flask: برای نصب، از دستور
pip install Flaskاستفاده کنید. - SQLite: معمولاً به صورت پیشفرض در پایتون نصب است، اما در صورت نیاز میتوانید آن را نصب کنید.
طراحی پایگاه داده
برای ذخیره اطلاعات سفارشات، از یک پایگاه داده SQLite استفاده خواهیم کرد. ساختار پایگاه داده به شرح زیر است:
جدول Orders:
id(INTEGER PRIMARY KEY AUTOINCREMENT): شناسه یکتا برای هر سفارشcustomer_name(TEXT): نام مشتریorder_date(TEXT): تاریخ سفارشtotal_amount(REAL): مبلغ کل سفارشstatus(TEXT): وضعیت سفارش (مثلاً ‘در حال پردازش’، ‘ارسال شده’، ‘تکمیل شده’)
ایجاد ساختار پروژه
ساختار پروژه به صورت زیر خواهد بود:
order_management_system/
├── app.py
├── database.db
└── templates/
├── index.html
├── order_form.html
├── order_list.html
└── order_detail.html
app.py: فایل اصلی برنامه Flask که منطق برنامه را در خود جای میدهد.
database.db: فایل پایگاه داده SQLite.
templates/: پوشهای که فایلهای HTML (قالبها) را در خود نگه میدارد.
پیادهسازی برنامه Flask (app.py)
ابتدا، فایل app.py را ایجاد کنید و کد زیر را در آن قرار دهید:
import sqlite3
from flask import Flask, render_template, request, redirect, url_for
app = Flask(__name__)
DATABASE = 'database.db'
def get_db_connection():
conn = sqlite3.connect(DATABASE)
conn.row_factory = sqlite3.Row
return conn
def init_db():
conn = get_db_connection()
with open('schema.sql', mode='r') as f:
conn.cursor().executescript(f.read())
conn.commit()
conn.close()
@app.route('/')
def index():
return render_template('index.html')
@app.route('/orders')
def order_list():
conn = get_db_connection()
orders = conn.execute('SELECT * FROM Orders').fetchall()
conn.close()
return render_template('order_list.html', orders=orders)
@app.route('/orders/new', methods=['GET', 'POST'])
def new_order():
if request.method == 'POST':
customer_name = request.form['customer_name']
order_date = request.form['order_date']
total_amount = request.form['total_amount']
status = request.form['status']
conn = get_db_connection()
conn.execute('INSERT INTO Orders (customer_name, order_date, total_amount, status) VALUES (?, ?, ?, ?)',
(customer_name, order_date, total_amount, status))
conn.commit()
conn.close()
return redirect(url_for('order_list'))
return render_template('order_form.html')
@app.route('/orders/')
def order_detail(order_id):
conn = get_db_connection()
order = conn.execute('SELECT * FROM Orders WHERE id = ?', (order_id,)).fetchone()
conn.close()
if order is None:
return "Order not found"
return render_template('order_detail.html', order=order)
if __name__ == '__main__':
# init_db() # uncomment to initialize the database
app.run(debug=True)
ایجاد فایل Schema (schema.sql)
فایل schema.sql را در کنار app.py ایجاد کنید و کد زیر را در آن قرار دهید:
DROP TABLE IF EXISTS Orders;
CREATE TABLE Orders (
id INTEGER PRIMARY KEY AUTOINCREMENT,
customer_name TEXT NOT NULL,
order_date TEXT NOT NULL,
total_amount REAL NOT NULL,
status TEXT NOT NULL
);
ایجاد قالبهای HTML (templates/)
در پوشه templates/، فایلهای HTML زیر را ایجاد کنید:
index.html
سیستم مدیریت سفارش
order_list.html
لیست سفارشات
| شناسه | نام مشتری | تاریخ سفارش | مبلغ کل | وضعیت | جزئیات |
|---|---|---|---|---|---|
| {{ order['id'] }} | {{ order['customer_name'] }} | {{ order['order_date'] }} | {{ order['total_amount'] }} | {{ order['status'] }} | مشاهده جزئیات |
order_form.html
ثبت سفارش جدید
در حال پردازش
ارسال شده
تکمیل شده
order_detail.html
جزئیات سفارش
شناسه: {{ order['id'] }}
نام مشتری: {{ order['customer_name'] }}
تاریخ سفارش: {{ order['order_date'] }}
مبلغ کل: {{ order['total_amount'] }}
وضعیت: {{ order['status'] }}
اجرای برنامه
برای اجرای برنامه، در ترمینال به دایرکتوری پروژه بروید و دستور python app.py را اجرا کنید. سپس، مرورگر خود را به آدرس http://127.0.0.1:5000/ باز کنید.
توضیحات تکمیلی
این یک سیستم مدیریت سفارش بسیار ساده است. برای بهبود آن، میتوانید ویژگیهای زیر را اضافه کنید:
- امکان ویرایش و حذف سفارشات
- اعتبارسنجی ورودیها
- پیادهسازی سیستم لاگین و مدیریت کاربران
- استفاده از یک پایگاه داده قویتر مانند PostgreSQL یا MySQL
- استفاده از یک ORM (Object-Relational Mapper) مانند SQLAlchemy برای تسهیل کار با پایگاه داده
- بهبود طراحی رابط کاربری
این آموزش به شما یک نقطه شروع برای ساخت سیستمهای مدیریت سفارش با پایتون و Flask ارائه میدهد. با تمرین و یادگیری بیشتر، میتوانید سیستمهای پیچیدهتر و قدرتمندتری را توسعه دهید.

بدون دیدگاه