در این مقاله، به طور گامبهگام یک برنامه وب ساده با استفاده از فریمورک Flask در پایتون ایجاد میکنیم و آن را با استفاده از داکر کانتینر میکنیم. این برنامه پیام "Hello, World!" را در مرورگر نمایش میدهد.
ابتدا، یک دایرکتوری جدید برای پروژه ایجاد کنید و وارد آن شوید:
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!" را در صفحه اصلی نمایش میدهد.
requirements.txt
برای نصب وابستگیهای برنامه، یک فایل به نام requirements.txt
ایجاد کنید و نام بستههای مورد نیاز را در آن قرار دهید:
Flask==2.0.2
یک فایل به نام 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 مراحل زیر را انجام میدهد:
requirements.txt
.app.py
.در ترمینال، دستور زیر را اجرا کنید تا ایمیج داکر ساخته شود:
docker build -t flask-docker-app .
برای اجرای کانتینر از ایمیج ساخته شده، از دستور زیر استفاده کنید:
docker run -p 5000:5000 flask-docker-app
این دستور کانتینر را اجرا میکند و پورت 5000 کانتینر را به پورت 5000 سیستم شما متصل میکند.
در مرورگر وب خود، به آدرس http://localhost:5000
بروید. شما باید پیام "Hello, World!" را مشاهده کنید.
برای اضافه کردن طراحی به این برنامه، میتوانیم از 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>
برای نمایش فایل 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)
پس از ایجاد فایل index.html
، باید ایمیج داکر را دوباره بسازید:
docker build -t flask-docker-app .
پس از ساخت مجدد ایمیج، کانتینر را دوباره اجرا کنید:
docker run -p 5000:5000 flask-docker-app
به آدرس http://localhost:5000
بروید و باید صفحه طراحی شده با پیام "سلام، جهان!" را مشاهده کنید.
با استفاده از داکر، ما توانستیم یک برنامه وب ساده با Flask را به صورت قابل حمل و مستقل از محیط اجرا کنیم. این کار با استفاده از Dockerfile و دستورات ساخت و اجرای کانتینر انجام شد. این روش به شما امکان میدهد برنامههای خود را به راحتی در محیطهای مختلف تست و اجرا کنید بدون نگرانی از وابستگیهای محیطی مختلف.