برای سونیا – شری

`از فلاسک واردات فلاسک ، render_template ، درخواست ، سقط
درخواست های واردات
وارد کردن سیستم عامل
از tool.utils import secure_filename
برنامه = فلاسک (نام)
دایرکتوری های لازم را ایجاد کنید
os.makedirs (“استاتیک/تصاویر” ، وجود_ک = درست)
@app.route ('/')
DEF INDEX ():
Return Render_Template ('index.html')
@app.route ('/fetch/مسیر: Image_Url ')
def fetch_image (image_url):
سعی کنید:
# تصویر واکشی از URL ارائه شده
پاسخ = درخواست ها. get (image_url ، stream = true)
if response.status_code != 200:
return abort(404, "Could not fetch image from URL")
# Generate a secure filename for the image
filename = secure_filename(image_url.split('/')[-1])
if not filename.endswith('.png'):
filename = filename.split('.')[0] + '.png'
# Save the image
img_path = os.path.join('static/images', filename)
with open(img_path, 'wb') as f:
for chunk in response.iter_content(1024):
f.write(chunk)
# Store image info in a variable that will be passed to template
img1 = {
'filename': filename,
'path': f'images/{filename}',
'source_url': image_url
}
return render_template('image.html', img1=img1)
except Exception as e:
return abort(500, f"Error processing image: {str(e)}")
اگر نام == 'اصلی'
app.run (debug = true) `
در اینجا توضیح تمیز و واضح از کد فلاسک شما به اشتراک گذاشته اید ، با تمرکز بر آنچه که هر قسمت انجام می دهد و نحوه عملکرد تصویر کار می کند:
✅ هدف این برنامه:
این برنامه Flask یک URL تصویر را به عنوان ورودی می گیرد ، تصویر را از اینترنت می گیرد ، آن را به صورت محلی در یک ذخیره می کند static/images
پوشه ، و آن را در یک صفحه وب نمایش می دهد.
🔍 تجزیه کد:
1 وارد کردن
from flask import Flask, render_template, request, abort
import requests
import os
from werkzeug.utils import secure_filename
-
Flask
– برنامه وب را ایجاد می کند. -
render_template
– الگوهای HTML را ارائه می دهد. -
request
– داده های ورودی را کنترل می کند (مستقیماً در اینجا استفاده نمی شود ، اما اگر قصد دارید آن را گسترش دهید). -
abort
– کدهای خطا مانند 404 یا 500 را برمی گرداند. -
requests
– برای واکشی تصویر از URL استفاده می شود. -
os
– در ایجاد پوشه ها و رسیدگی به مسیرهای فایل کمک می کند. -
secure_filename
– با خیال راحت نام پرونده را برای جلوگیری از گذر از مسیر و سایر مسائل قالب بندی می کند.
2 تنظیم برنامه و ایجاد فهرست
app = Flask(__name__)
os.makedirs('static/images', exist_ok=True)
-
Flask(__name__)
– برنامه Flask را شروع می کند. -
os.makedirs(...)
– پوشه را ایجاد می کندstatic/images
اگر قبلاً وجود نداشته باشد.
3 مسیر صفحه اصلی
@app.route('/')
def index():
return render_template('index.html')
- بارها
index.html
وقتی URL ریشه را باز می کنید/
بشر
4 مسیر واکشی تصویر
@app.route('/fetch/<path:image_url>')
def fetch_image(image_url):
- این مسیر هنگامی که کاربر به آنجا برود آغاز می شود
/fetch/<image_url>
بشر -
<path:image_url>
اجازه می دهد تا بر روی URL تصویر بریده شود.
5 واکشی و ذخیره تصویر
response = requests.get(image_url, stream=True)
- ارسال می کند بدست آوردن درخواست برای واکشی محتوای تصویر.
if response.status_code != 200:
return abort(404, "Could not fetch image from URL")
- اگر تصویر در دسترس نیست (وضعیت 200) ، خطای 404 را برگردانید.
6 یک نام ایمن ایجاد کنید
filename = secure_filename(image_url.split('/')[-1])
- قسمت آخر URL (احتمالاً نام پرونده) را استخراج می کند و آن را ایمن می کند.
if not filename.endswith('.png'):
filename = filename.split('.')[0] + '.png'
- تضمین می کند پرونده با پایان
.png
برای یکنواختی
7 تصویر را به صورت محلی ذخیره کنید
img_path = os.path.join('static/images', filename)
with open(img_path, 'wb') as f:
for chunk in response.iter_content(1024):
f.write(chunk)
- تصویر را در تکه ها (1 کیلوبایت در یک زمان) ذخیره می کند
static/images
بشر
8 اطلاعات تصویر را برای نمایش آماده کنید
img1 = {
'filename': filename,
'path': f'images/{filename}',
'source_url': image_url
}
- یک فرهنگ لغت اطلاعات در مورد تصویر ذخیره شده: نام پرونده ، مسیر نسبی و URL منبع اصلی.
9 صفحه تصویر را ارائه دهید
return render_template('image.html', img1=img1)
- اطلاعات تصویر را به
image.html
برای نمایش آن
10 رسیدگی به خطا
except Exception as e:
return abort(500, f"Error processing image: {str(e)}")
- خطاهای غیر منتظره (مشکلات شبکه ، مشکلات دیسک و غیره) را کنترل می کند و خطای 500 را نشان می دهد.
11 برنامه Flask را شروع کنید
if __name__ == '__main__':
app.run(debug=True)
- برای توسعه آسانتر و ردیابی خطا ، برنامه را در حالت اشکال زدایی شروع می کند.
ساختار پوشه فرض شده:
project_folder/
│
├── app.py
├── templates/
│ ├── index.html
│ └── image.html
└── static/
└── images/
✅ tl ؛ دکتر:
-
چه کاری انجام می دهد: یک URL تصویر می گیرد ، آن را واکشی می کند ، آن را ذخیره می کند
.png
، و آن را نمایش می دهد. - ویژگی های کلیدی: دست زدن به نام خانوادگی ایمن ، ذخیره محلی ، رسیدگی به خطا و ارائه از طریق قالب ها.
- مفید برای: ابزارهای پیش نمایش تصویر ، بارگیری کننده ها یا پردازنده های تصویر مبتنی بر وب.
آیا دوست داری نمونه بدهم index.html
وت image.html
کد هم ، برای تکمیل این برنامه؟