مشتری FTP با GUI Python🐱🏍

خوب بیایید وارد پروژه شویم. و این اولین پست من است که می شنوید بنابراین می دانید که من در مورد چه چیزی صحبت می کنم. کتابخانه های اصلی که من استفاده می کنم FTPLIB و CustomTinter برای GUI هستند.
کد منبع:
یک مشتری FTP ساده و کارآمد ساخته شده با Python ، به کاربران امکان می دهد به سرورهای FTP متصل شوند ، پرونده های بارگذاری/بارگیری را بارگذاری کنند و دایرکتوری ها را یکپارچه مدیریت کنند.
بوها مشتری قدرتمند و در عین حال ساده FTP ساخته شده با پایتون ، امکان انتقال فایل یکپارچه بین سرورهای محلی و از راه دور را فراهم می کند. ایده آل برای مدیریت اتصالات FTP با سهولت!
🎯 ویژگی های کلیدی
✔ وصل کردن به هر سرور FTP ایمن
📂 بارگذاری و بارگیری پرونده ها بدون زحمت
📁 دایرکتوری ها را مدیریت کنید (لیست ، تغییر نام ، حذف)
🔄 به روزرسانی های وضعیت انتقال در زمان واقعی
🔒 ایمن و کاربر پسند
🔧 نصب
1⃣ کلون مخزن
git clone https://github.com/Ukihanter/Python-FTP-Client/tree/main
cd your-repo-name
2 وابستگی ها را نصب کنید
pip install -r requirements.txt
🚀 نحوه استفاده
client مشتری FTP را اجرا کنید:
python gui.py
💡 جزئیات سرور FTP را وارد کرده و انتقال پرونده ها را به راحتی شروع کنید!
📦 الزامات
🔹 پایتون 3.x
🔹 ftplib
(داخلی)
🔹 هرگونه وابستگی اضافی در requirements.txt
🔹 مسیر محلی Defult روی D تنظیم شده است: \ احساس راحتی کنید تا آن را ویرایش کنید.
📜 مجوز
📄 منبع باز زیر مجوز من – احساس راحتی کنید!
🔗 در صورت پیدا کردن پروژه و ستاره ⭐ پروژه…
ساختن رابط کاربری
-
ابتدا GUI را با استفاده از FIGMA ایجاد کردم. و از ابزاری به نام Tkinter-Designer برای وارد کردن آنها به GUI Python استفاده کردم ، این یک روش بسیار آسان برای ساخت GUI Python است اما دارای سقوط هایی است.
-
tkinter-designer:
https://github.com/ParthJadhav/Tkinter-Designer
-
آموزش ویدیویی:
https://www.youtube.com/watch?v=oLxFqpUbaAE&t=562s
-
مستندات:
https://github.com/ParthJadhav/TkinterDesigner/blob/master/docs/instructions.md
-
بعد از ایجاد رابط کاربری گرافیکی می توانید به مرحله بعدی بروید
ضمنا
الزامات:
# This project uses Python's standard libraries only.
# No additional packages need to be installed.
# Optional: Specify Python version if needed
# python_version >= 3.9
اکنون ما باید کتابخانه هایی را که برای این پروژه استفاده کرده ایم وارد کنیم.
import os # For operating system/file handling
from pathlib import Path # For path manipulation
from ftplib import FTP # For FTP protocol operations
import datetime # For timestamp handling
from tkinter import ttk, messagebox # GUI components
import tkinter as tk
from tkinter import Tk, Canvas, Entry, Text, Button, PhotoImage
اینها توسط tkinter-designer تولید می شوند و لازم نیست نگران آن باشید
# Set up paths for GUI assets
OUTPUT_PATH = Path(__file__).parent
ASSETS_PATH = OUTPUT_PATH / Path(r"C:\Users\GIGABYTE\Desktop\New folder (4)\build\build\assets\frame0")
def relative_to_assets(path: str) -> Path:
"""Helper function to create absolute paths for GUI assets"""
return ASSETS_PATH / Path(path)
مدل اصلی GUI
# Create main application window
window = Tk()
window.title("FTP client By uki")
window.geometry("1280x720")
window.configure(bg="#2B2B2B") # Dark background color
تعریف مسیر پیش فرض فایل به مشتری
# Global variables for FTP connection and navigation
ftp = None # Will hold the FTP connection object
current_ftp_path = "https://dev.to/" # Current directory on FTP server
current_local_path = "D:/" # Current directory on local machine
صادر کردن : من از پیش فرض استفاده کردم
"D:/"
زیرا اگر این کار را وارد کنیدC:/
با خطای انکار شده دسترسی باز می گردد.
اکنون می خواهیم پرونده ها را از دستگاه محلی دریافت کنیم و از آن استفاده کردم از نمای درخت برای نشان دادن پرونده هایی که از آن استفاده می کنند استفاده می کنم try
عملکرد برای به روزرسانی لیست پرونده. در پایان همانطور که می بینید دارای خطای رسیدگی و به Permission Error
وت Exception
این قسمت در کد با استفاده از عملکرد دو کلیک ، ناوبری را در محوطه دستگاه محلی اداره می کند.
در حال حاضرlocal_go_back
عملکرد ناوبری پشت در فهرست دستگاه محلی را کنترل کنید.
اکنون ورودی را می گیرد host
username
password
و استفاده می کند try
عملکردی برای ایجاد اتصال به سرور. اگر اتصال موفق باشد ، ورود به سیستم را به عنوان بازگرداند ✅ Connected successfully!
اگر نه بازگشت Exception
خطا
اکنون پرونده های میزبان را به عنوان دستگاه محلی و همچنین رسیدگی به خطا لیست کنید
رسیدگی به ناوبری پرونده در میزبان:
میزبان و فایل محلی نمای درخت کشش:
بارگیری در هنگام بارگیری (در این حالت رانندگی می کندD:/
)
دکمه کشش و تماس با عملکرد:
این دکمه ببر است که برای اتصال به سرور FTP
command=connect_to_ftp,
متغیرهای دیگر طراحی و موقعیت دکمه هستند
دکمه حذف
این دکمه ببر است که برای حذف پرونده انتخاب شده از سرور FTP
command=delete_file,
متغیرهای دیگر طراحی و موقعیت دکمه هستند
دکمه بارگذاری
این دکمه ببر است که برای بارگذاری پرونده انتخاب شده از مشتری محلی
command=upload_file,
متغیرهای دیگر طراحی و موقعیت دکمه هستند
دکمه بارگیری
این دکمه ببر است که برای بارگیری فایل انتخاب شده از سرور میزبان
command=download_file,
متغیرهای دیگر طراحی و موقعیت دکمه هستند
عملکرد اصلی در مشتری FTP
تابع بارگیری
وقتی
download_file
عملکرد ببر این اتصال را بررسی می کند و سعی می کند در صورت عدم بازگشت ماساژهای خطا ، پرونده SELCTED را از میزبان dowanlad کنیدmessagebox
اگر همه خوب باشد ، پرونده را در مسیر محلی ذخیره کنید.
تابع بارگذاری
این عملکرد همچنین به جز بارگذاری پرونده در میزبان ، همان روش را دارد و همچنین ماساژ خطای لازم را ارائه می دهد.
عملکرد حذف
عملکردی که پرونده را از میزبان حذف می کند این کار را نمی توان در دستگاه محلی انجام داد.
تأیید مسیر
ورود به سیستم بارگذاری
ورود به موفقیت بارگذاری این متن را به Entry_4 وارد کنید*دانلود ورود به سیستم *
ورود به موفقیت در بارگیری. این متن را به enter_4 وارد کنید
خوب حالا شما می دانید که چگونه این اتفاق افتاد. من می دانم که این می تواند یک کسل کننده واقعی برای شما باشد. ممکن است