ערוץ - python tip israel
Ir al canal en Telegram
1 792
Suscriptores
Sin datos24 horas
Sin datos7 días
Sin datos30 días
Archivo de publicaciones
Class בפייתון
class הוא כמו תבנית של אובייקטים אנחנו יכולים לחשוב על ה-class כמו על סקיצה (אב-טיפוס) של בית. הוא מכיל את כל הפרטים על הקומות, הדלתות, החלונות וכו'. בהתבסס על התיאורים האלה אנחנו בונים את הבית. בית הוא האובייקט
איך ליצור class ב-Python
בשביל ליצור class, אנחנו משתמשים במילת המפתח class:
דוגמא:
python
# יצירת class בשם MyClass, עם אובייקט בשם x
class MyClass:
x = 5
עכשיו אנחנו יכולים להשתמש ב-class שנקרא MyClass ליצירת אובייקטים:
דוגמא:
# יצירת אובייקט בשם p1, והדפסת הערך של x
p1 = MyClass()
print(p1.x)
הדרך הנפוצה ביותר להשתמש ב-class היא להשתמש ב-init() function.
init() function היא function שנקראת אוטומטית ברגע שה-class מיווּד (initialized).
אנחנו משתמשים ב-init() function להשמת ערכים למאפייני האובייקט, או לביצוע פעולות אחרות
דוגמא:
# יצירת class בשם Person, משתמש ב-init() function להשמת ערכים ל-name ו-age
class Person:
def init(self, name, age):
self.name = name
self.age = age
p1 = Person("John", 36)
print(p1.name)
print(p1.age)
Note: ה-self parameter הוא ההתייחסות ל-instance הנוכחי של ה-class, והוא משמש להבחנה בבעהבוט להורדת אתרים כמעט מוכן
כניראה מוצ"ש אפרסם לביינתים הכנתי בוט שעושה צילום מסך לאתרים הבעיה היחידה שחלק מהקישורים תקבלו הודעה שהגישה הוגבלה כי צריך לשלם
זה הגבלה של השרת שעליו רץ הבוט אם מישהו רוצה לשלם או שרוצים כמה להתשתף זה 10 או 5 דולר בחודש
@bing_israelbot
הapi זמין למי שרוצה דוגמא https://python-tip.vercel.app/
curl -X 'GET' 'https://python-tip.vercel.app/' -H 'accept: application/json' -H 'length: 10'
למי שרוצה ללמוד api קצת יותר באריכות https://www.youtube.com/watch?v=0sOvCWFmrtA&t=2257s
הערה על api:
כשמשתמשים בapi בשביל אתרים או אפליקציות צריך לוודא שהapi מאובטח כלומר בלי הרשאות מיותרות
אתן דוגמא שקרתה לי
לפני כמה חודשים שלחו בטרמוקס קישור פישינג שניראה כמו אתר דואר ישראל השתמשתי בכלי ליירות הבקשות http ואז ראיתי שהבקשות http מכילות api web hook ששולח את הפרטים לשרת דיסקורד של התוקף אבל הapi חשוף זאת אומרת שאפשר לבצע פעולות על הapi 👺
פשוט שלחתי בקשת delete לapi שלו 😎😎 ואז הפרטים פשוט לא נשלחו לתוקף אחרי כמה דקות ראיתי שהוא פתח חדש מחקתי לו גם אותו 🤪 ואז הוא מחק את האתר🥳
בקיצור תשתמשו בapi בזהירות אם יש בו אפשרויות לבצע פעולות של מחיקת פרטים או דברים בסגנון
למי שרוצה לראות איך הבקשת http ניראת, לא סתם השתמשתי fastapi יש להם ממשק לנסיון הapi
למי שעדיין לא מכיר את סוגי הבקשות http
HTTP (Hypertext Transfer Protocol) הוא הפרוטוקול העיקרי המשמש להעברת נתונים דרך האינטרנט. כאשר לקוח (למשל, דפדפן אינטרנט או תוכנת Python) רוצה לאחזר או לתפעל נתונים משרת (למשל, שירות אינטרנט), הוא שולח בקשת HTTP לשרת, אשר מגיב בתגובת HTTP.
ישנן מספר שיטות HTTP (נקראות גם פעלים) המשמשות לציון סוג הפעולה שהלקוח רוצה לבצע בשרת. השיטות הנפוצות ביותר הן:
GET: שיטת GET משמשת לאחזור מידע מהשרת. כאשר לקוח שולח בקשת GET לשרת, הוא מצפה מהשרת יחזיר את הנתונים המבוקשים בתגובה. לדוגמה, דפדפן אינטרנט משתמש בבקשות GET כדי לאחזר דפי אינטרנט משרת.
POST: שיטת POST משמשת לשליחת נתונים לשרת כדי ליצור או לעדכן משאב. כאשר לקוח שולח בקשת POST לשרת, הוא כולל נתונים בגוף הבקשה שהשרת יכול להשתמש בהם כדי ליצור או לשנות משאב. לדוגמה, כאשר אתה שולח טופס באתר, הנתונים שאתה מזין נשלחים בדרך כלל לשרת באמצעות בקשת POST.
PUT: שיטת PUT משמשת לעדכון משאב קיים בשרת. כאשר לקוח שולח בקשת PUT לשרת, הוא כולל את הנתונים המעודכנים בגוף הבקשה, שבו השרת משתמש כדי לשנות את המשאב הקיים. לדוגמה, תוכל להשתמש בבקשת PUT כדי לעדכן את פרטי פרופיל המשתמש שלך בשירות אינטרנט.
DELETE: שיטת DELETE משמשת למחיקת משאב בשרת. כאשר לקוח שולח בקשת DELETE לשרת, הוא מורה לשרת למחוק את המשאב שצוין. לדוגמה, תוכל להשתמש בבקשת DELETE כדי למחוק קובץ משירות שיתוף קבצים.
בסך הכל, שיטות HTTP מספקות דרך סטנדרטית עבור לקוחות ושרתים ליצור אינטראקציה זה עם זה, ולכל שיטה יש מטרה ספציפית המתאימה לסוגים מסוימים של פעולות.
דוגמא לapi פשוט שייצרתי כאן השתמשתי בfastapi שהיא ספרייה מאוד מוכרת ליצירת api
n
יבוא ספריות
import string
פה אני מייבא פונקיה ספציפית מתוך ספריית fastapi
הפונקציה הראשי FastAPI
פונקציה Request נצרכת יותר בשביל הדוקיומנטציה של fastapi
פונקציה Header כדי לשלוף את הheder מהבקשת http
from fastapi import FastAPI, Request, Header
import secrets
קריאה לפונקציה הראשית של fastapi
app = FastAPI()
הגדרה שכל קריאת get על / תענה בפונקיצה שמתחתיה
@app.get('/')
async def root(request: Request, length: int = Header('length')):
password = 'No password generated'
length = request.headers.get('length', None)
if length is not None and length.isdigit():
if 0 < int(length) < 100+1:
password = ''.join(secrets.choice(string.ascii_letters + string.digits + string.punctuation) for i in range(int(length)))
return {'random_password': password, 'test': 'text'}
הערכים שיחזרו
random_password
test
מהו api
בתכנות, API (Application Programming Interface) מתייחס למערכת של כללים ופרוטוקולים השולטים כיצד יישומי תוכנה שונים יכולים לתקשר זה עם זה.
במילים אחרות, API מציין כיצד תוכניות או מערכות שונות יכולות לקיים אינטראקציה ולשתף נתונים זו עם זו, מבלי לדרוש מכל תוכנית לדעת את הפרטים של הפעילות הפנימית של התוכנית האחרת.
ב-Python, ממשקי API יכולים ללבוש מספר צורות שונות, אך חלק מהנפוצות ביותר כוללות:
ממשקי API של אינטרנט: אלו הם ממשקי API המאפשרים לתוכניות Python לקיים אינטראקציה עם שירותי אינטרנט ולאחזר מהם נתונים. ממשקי API של אינטרנט מסופקים לרוב באמצעות ארכיטקטורת REST (העברת מצב ייצוגית), המאפשרת ללקוח (למשל, תוכנית Python) לבקש משאבים ספציפיים (למשל, נתונים) משרת באמצעות בקשות HTTP סטנדרטיות.
ממשקי API של ספרייה: ספריות Python מספקות לעתים קרובות ממשקי API המאפשרים למפתחים להשתמש בפונקציות או שיטות ספציפיות שסופקו על ידי הספרייה בקוד משלהם. לדוגמה, ספריית NumPy הפופולרית מספקת API לעבודה עם מערכים ומטריצות.
ממשקי API של מערכת הפעלה: ממשקי API אלו מאפשרים לתוכניות Python לקיים אינטראקציה עם מערכת ההפעלה הפועלת במחשב. לדוגמה, מודול ה-OS מספק API לעבודה עם קבצים וספריות במערכת הקבצים.
לסיכום: ממשקי API הם מושג בסיסי בפיתוח תוכנה ומשמשים כדי לאפשר תקשורת ואינטראקציה בין רכיבי תוכנה שונים.
הבעיה שהבוט לא זיהה את כל סוגי הקישורים תוקנה והקוד עודכן בגיט למי שרוצה לראות
https://t.me/url_spliterbot
תודה ל@dank3y על ההערה
https://t.me/python_tip_chat/792
בהמשך אשלח בוט שיוצר סיסמאות רק צריך לבחור גודל של הסיסמא ואת התווים שיהיו בסיסמא
למי שרוצה להתחיל ללמוד ליצור בוטים בטלגרם הכנתי כמה דוגמאות כל יום אשלח דוגמא למי שמתעניין בניתי בוט שחותך קישורים מטקסט
https://gist.github.com/nhman-python/b20f544ad65e9590df7086f5e4c8049a
תשובות
רק @YehudalevBot שלח
קל
with open("example.txt", "r") as f:
data = f.read()
print(data)
בינוני
with open("example.json", "r") as f:
contents = json.load(f)
print(contents)
עריכת קבצים
קל:
כתוב תוכנית Python שפותחת קובץ טקסט בשם "example.txt" ומדפיסה את כל תוכנו למסוף.
בינוני:
כתוב תוכנית Python שפותחת קובץ JSON בשם "example.json" ומדפיסה את התוכן לקונסולה.
סוגי עריכה
בעריכת קבצים בפייתון ישנם מספר אפשרויות לפתיחת קובץ, כל אחת מהן מתאימה למטרות שונות. הנה רשימה של האפשרויות הקיימות:
קריאה בלבד
1. "r": פתיחת קובץ לקריאה בלבד. כל ניסיון לכתוב לקובץ יכשל. נהוג להשתמש בפקודת with כדי לפתוח קובץ במצב זה, כך שהוא יסגר את עצמו באופן אוטומטי לאחר שהעבודה עם הקובץ הסתיימה.
שיכתוב של הקובץ המידע הישן יעלם אלא אם תשמרו אותו במשתנה
2. "w": פתיחת קובץ לכתיבה בלבד. אם הקובץ כבר קיים, תוכן הקובץ הקודם ימחק ויחליף בתוכן החדש. אם הקובץ לא קיים, יוצר קובץ חדש.
עידכון טקסט לתוך קובץ ללא אפשרות מחיקה של המידע הישן
3. "a": פתיחת קובץ לכתיבה עם הוספת תוכן לסוף הקובץ. ניתן להוסיף תוכן לקובץ ללא מחיקת התוכן הקודם. אם הקובץ לא קיים, נוצר קובץ חדש.
כתיבה לקובץ שלא קיים
4. "x": פתיחת קובץ לכתיבה, אך רק אם הקובץ לא קיים. אם הקובץ קיים כבר, הפעולה תכשל ותגרום לשגיאה.
בינארי
5. "b": פתיחת קובץ במצב בינארי. יש להשתמש במצב זה כאשר מעוניינים לעבוד עם קבצי תמונה, סרטוני וידאו וכדומה.
כדי לפתוח קובץ בפייתון, יש להשתמש בפונקציה open ולציין את הנתיב לקובץ ואת המצב (mode) המתאים למטרה הרצויה. לדוגמה:
file = open("path/to/file.txt", "r")
במצב זה, הקובץ "file.txt" נפתח לקריאה בלבד ולא יתן לכתוב לתוכו.
כדי להשתמש בקובץ, יש להשתמש בפעולות כמו read(), write() וכדומה, תלוי בצורך המתאים למטרה שלכם.עבודה אם קבצים בפייתון
1. פתיחת קובץ: על מנת לפתוח קובץ בפייתון, יש להשתמש בפונקציה open. לדוגמה, כדי לפתוח קובץ בשם "file.txt" לקריאה, יש להשתמש בפקודה:
file = open("file.txt", "r")
כאן, "r" מציין שהקובץ נפתח לקריאה בלבד.
2. קריאת תוכן קובץ: כדי לקרוא את תוכן הקובץ, יש להשתמש בפונקציה read. לדוגמה:
content = file.read()
כאן, המשתנה content מכיל את כל תוכן הקובץ.
3. כתיבה לקובץ: כדי לכתוב לקובץ, יש להשתמש בפונקציה אבל צריך להחליף את הסוג עריכה לw כלומר כתיבה
write. לדוגמה:
file.write("Hello, world!")
כאן, המחרוזת "Hello, world!" מופיעה בקובץ.
4. סגירת קובץ: לאחר שסיימתם לעבוד עם הקובץ, יש לסגור אותו בפונקציה close. לדוגמה:
file.close()
חפשו בגוגל ותיקראו על אופציה קלה יותר לעבוד אם הקבצים בלי צורך לפתוח ולסגור את הקובץ
with open pythonהיום נלמד לפתוח קבצים לייבא מידע מקובצי json csv וטקסט
יהיה גם תרגיל על מה שנלמד...
