ایجاد یک برنامه وب ساده با Flask و Docker

مقدمه

در این مقاله، به طور گام‌به‌گام یک برنامه وب ساده با استفاده از فریم‌ورک Flask در پایتون ایجاد می‌کنیم و آن را با استفاده از داکر کانتینر می‌کنیم. این برنامه پیام "Hello, World!" را در مرورگر نمایش می‌دهد.

1. ایجاد برنامه وب با Flask

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

mkdir flask-docker-app
cd flask-docker-app

سپس یک فایل به نام app.py ایجاد کنید و کد زیر را در آن قرار دهید:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

این کد یک برنامه وب ساده با Flask است که پیام "Hello, World!" را در صفحه اصلی نمایش می‌دهد.

2. ایجاد فایل requirements.txt

برای نصب وابستگی‌های برنامه، یک فایل به نام requirements.txt ایجاد کنید و نام بسته‌های مورد نیاز را در آن قرار دهید:

Flask==2.0.2

3. ایجاد Dockerfile

یک فایل به نام Dockerfile در دایرکتوری پروژه ایجاد کنید و دستورات زیر را در آن قرار دهید:

# Use an official Python runtime as a parent image
FROM python:3.9-slim

# Set the working directory in the container
WORKDIR /usr/src/app

# Copy the current directory contents into the container at /usr/src/app
COPY . .

# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Make port 5000 available to the world outside this container
EXPOSE 5000

# Define environment variable
ENV NAME World

# Run app.py when the container launches
CMD ["python", "app.py"]

این Dockerfile مراحل زیر را انجام می‌دهد:

4. ساخت ایمیج داکر

در ترمینال، دستور زیر را اجرا کنید تا ایمیج داکر ساخته شود:

docker build -t flask-docker-app .

5. اجرای کانتینر

برای اجرای کانتینر از ایمیج ساخته شده، از دستور زیر استفاده کنید:

docker run -p 5000:5000 flask-docker-app

این دستور کانتینر را اجرا می‌کند و پورت 5000 کانتینر را به پورت 5000 سیستم شما متصل می‌کند.

6. دسترسی به برنامه

در مرورگر وب خود، به آدرس http://localhost:5000 بروید. شما باید پیام "Hello, World!" را مشاهده کنید.

7. طراحی با HTML و CSS

برای اضافه کردن طراحی به این برنامه، می‌توانیم از HTML و CSS استفاده کنیم. ابتدا یک فایل HTML به نام index.html ایجاد کنید:

<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>برنامه وب با Flask</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            text-align: center;
            background-color: #f8f9fa;
            margin: 0;
            padding: 50px;
        }
        h1 {
            color: #007BFF;
        }
    </style>
</head>
<body>
    <h1>سلام، جهان!</h1>
    <p>این یک برنامه وب ساده است که با استفاده از Flask ساخته شده است.</p>
</body>
</html>

8. به‌روزرسانی برنامه Flask

برای نمایش فایل HTML، برنامه Flask را به‌روز کنید. کد زیر را در app.py قرار دهید:

from flask import Flask, render_template

app = Flask(__name__)

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

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

9. ساخت مجدد ایمیج داکر

پس از ایجاد فایل index.html، باید ایمیج داکر را دوباره بسازید:

docker build -t flask-docker-app .

10. اجرای کانتینر

پس از ساخت مجدد ایمیج، کانتینر را دوباره اجرا کنید:

docker run -p 5000:5000 flask-docker-app

11. دسترسی به برنامه

به آدرس http://localhost:5000 بروید و باید صفحه طراحی شده با پیام "سلام، جهان!" را مشاهده کنید.

جمع‌بندی

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

  1. ورود به صفحه فارسی