9 מסגרות הפיתון הטובות ביותר לבניית יישומים קטנים לארגונים

פייתון הוא גם צעצוע כיפי וגם דובר נפץ מפחיד. כך גם עם מה שאתה יכול לעשות עם פייתון.


פייתון אהוב על חובבים, מדענים ואדריכלים כאחד.

קל מאוד להתחיל איתו, יש לו הפשטות בסדר גודל גבוה ויכולות תכנות מטא לבנות מערכות גדולות ומורכבות, ויש בו המון ספריות של ספריות לביצוע כמעט כל דבר. בטח, יש מגבלות כשמדובר במקביל והקלדה חזקה, אבל אתה יכול לעקוף אותם.

במאמר זה, נסקור כמה ממסגרות הפיתון הטובות ביותר בכל הקשור לבניית יישומי אינטרנט גדולים כקטנים.

דג’נגו

ה דג’נגו המסגרת עמדה במבחן הזמן במסגרת המסגרת המקוונת לקהילת פייתון. אם תקפת מפתח של פיתון בשנתם ואילצת אותם לבנות אפליקציית רשת בנקודת אקדח, הם יגיעו אוטומטית אל ג’נגו כמו שרוביסט יגיע למסילה.

ויש לכך סיבה טובה. דג’אנגו הוא, כמו שאומר קו התג, “מסגרת אינטרנטית לפרפקציוניסטים עם מועדים.” זה מה שמכונה מסגרת “כלול סוללות” (בדומה לאופן שבו Python היא שפה הכוללת סוללות), המספקת את כל הפונקציונליות הנפוצה מחוץ לקופסה.

עם תכונות אלה שנאפו, ג’נגו מקצץ באופן מאסיבי את זמן הפיתוח:

  • ORM שימושי ונעים, עם הגירות שנוצרו ויושמו אוטומטית על ידי המסגרת.
  • פיגומים לייצור אוטומטי של פאנל הניהול מבוסס על הדגמים שלך.
  • תמיכה בעוגיות, הפעלות, תוכנות ביניים, תבניות וכו ‘.
  • תכונות אבטחה כמו מניעת XSS, מניעת CRSF וכו ‘, מיושמות אוטומטית.
  • עובד עם כמעט כל בסיסי הנתונים שם בחוץ (קל למצוא מתאמים שבהם התמיכה הרשמית אינה קיימת)
  • למרות זאת, תמיכה ראשונה בנתונים גיאוגרפיים ושאלות מרחביות GeoDjango

והרבה, הרבה יותר. די אם נאמר שג’נגו הוא מסגרת אינטרנטית מלאה ומפוצצת.

האם דג’נגו בשבילך?

בהחלט כן.

לג’נגו יש הגיון מצוין לכל מקרי השימוש, בין אם מדובר באב-טיפוס מהיר ובין אם מדובר בתכנון יישום ארגוני. הקצה המחוספס היחיד בו תפגוש הוא מבנה המסגרת. מכיוון שדג’נגו מתכופף לאחור כדי להפוך את הפיתוח מהיר וקל עבורך, הוא כופה את המבנה שלו (מושג שנקרא “מוסכמה על תצורה”) על היזם, אשר אינך מסכים איתו. לדוגמה, אם אתה רוצה להחליף את Django ORM במשהו אחר (נניח, SQL Alchemy), היה מוכן להפתעות.

מעוניין להפוך למפתח ערימה מלא עם ג’נגו ופיתון? – בדוק את זה קורס מקוון פנטסטי.

בקבוק

בעוד שג’נגו תופס כמעט את כל שיתוף הפעולה בפיתוח אתרים של פייתון, בקבוק הוא מתמודד חזק.

להבדיל מג’נגו, בקבוק הוא “מיקרו-מסגרת”, כלומר הוא מתמקד בהצגת כמה דברים מינימליים חשופים, ומשאיר לך את השאר. “השאר תלוי בך” זה יכול להוות מקור לתסכול או הנאה, תלוי מה המטרות שלך. לאלו שיודעים מה הם עושים ורוצים ליצור באהבה את יישומי האינטרנט שלהם על ידי בחירת רכיבים לפי בחירתם, בקבוק הוא אלילה..

בקבוק מציע את התכונות הבאות:

  • ניתוב, תבנית, ניהול הפעלות ותכונות שימושיות אחרות.
  • תמיכה מלאה בבדיקת יחידות
  • ארכיטקטורה מינימלית ניתנת לחיבור
  • תמיכה ב- REST מהשורה הראשונה
  • תמיכה בתכניות Blueprints, ארכיטקטורה ייחודית של Flask עבור יישומי אינטרנט זעירים
  • בחר את החבילות שלך עבור ORM, הגירות וכו ‘.
  • מבנה יישומים גמיש – שימו את הקבצים שלכם למקום בו הם הכי הגיוניים עבורכם
  • הגשת קבצים סטטית
  • תואם WGSI

האם בקבוק בשבילך?

כאמור, בקבוק הוא מסגרת אינטרנט מינימלית, כאשר כל מה שנשבר לרכיבים בודדים שניתן להחליף. אם אתה ממהר לבנות אב-טיפוס, תבלה זמן רב בקבלת החלטות טריוויאליות על בסיס הנתונים, מבנה התיקיות, הניתוב וכדומה, שיכולות להיות פרודוקטיביות נגדית. בקבוק פועל בצורה הטובה ביותר כשאתה עומד על פרויקט יציב ורציני של ממשקי API של בקנה מידה בינוני עד גדול, במיוחד REST.

בקבוק

אם חשבתם שהגישה של פלסק אינה מינימלית מספיק ושהיית עדיין רוצה יותר שליטה, תגיד שלום ל בקבוק.

בקבוק מתפשט אפילו יותר, עד לנקודה שבה התלות היחידה היא ספריית Python הסטנדרטית. משמעות הדבר היא שלא תתקין pip או תתקין זאת באמצעות pip, אם כי סביר להניח שתצטרך לעשות זאת לפני זמן רב. זו הסיבה שבקבוק בולט אצל אנשים מסוימים:

  • פריסה של קובץ יחיד. כן, כל היישום שלך חי בקובץ “.py” יחיד.
  • אין תלות חיצונית. אם מותקנת גרסת Python המתאימה לך, כדאי שתלך.
  • מספק את מנוע התבניות שלו, שניתן להחליף אותו עם Jinja2, Mako או Cheetah.
  • תמיכה בטפסים, כותרות, קובצי cookie והעלאת קבצים.
  • שרת אינטרנט מובנה, שניתן להחליף אותו בקלות.

הוא בקבוק בשבילך?

אם אתה מייצר אפליקציה ממש קטנה (נניח, פחות מ- 500 שורות קוד) ללא דרישות מיוחדות, בקבוק עשוי להיות לך הגיוני בהרבה. זוהי גישה מוחלטת ללא שטויות ביצירת אפליקציות אינטרנטיות, אך בפועל, אתה תמצא שאתה מפריע יותר מאשר עזר לך על ידי Bottle. הסיבה היא שהעולם האמיתי תמיד משתנה ולפני שאתה יודע אותו. דרישות חדשות יושמטו על ראשכם. בשלב זה, הכנסת הכל בקובץ בודד יהפוך להיות מטלה.

כמו כן, אם אתה חושב שהבקבוק והבקבוק כמעט זהים, אתה צודק. הצעות של מתמזג השניים מתוארכים לשנת 2012, ואפילו ארמין, יוצר הפלסק, מסכים עם זה. עם זאת, מרסל, יוצר הבקבוק, שומר על הבחנה אידיאולוגית קפדנית בגלל גישת הקבצים החדשים ומתעקש שהשניים יישארו נפרדים.

Zope

Zope מסובך להסביר, אבל אני אנסה. כן, זו מסגרת אינטרנטית שניתן להשתמש בה לבניית יישומים גדולים או קטנים, אך זה לא הכל. Zope הוא יותר פלטפורמה המורכבת מכלים (מסגרות אינטרנט כלולות) שנוצרו תחת הפילוסופיה של Zope ומתוחזקים על ידי תאגיד Zope.

ל- Zope מספר רכיבים ותכונות מעניינים המתאימים לפיתוח יישומים ארגוניים:

  • רכיב הרשמה וגילוי ארכיטקטורה להגדרת תצורה של אפליקציה גדולה.
  • ZODB – מסד הנתונים של האובייקטים (היחיד) עבור Python לאחסון אובייקטים באופן טבעי.
  • מסגרת מלאה וסטנדרטים למערכות ניהול תוכן
  • קבוצה של מסגרות ליישומי אינטרנט – הקנונית עדיין נקראת Zope, אם כי נבנו עליהן כמה מסגרות חדשות (כמו גרוק)..
  • סטנדרטים חזקים לפיתוח, שחרור ותחזוקה של תוכנה.

האם Zope בשבילך?

אם אתה מחפש סביבה מאוד מובנית לבניית אפליקציות גדולות באמת, Zope הוא טוב. עם זאת, תיתקל גם בנתח ההוגן שלך בנושאים. בעוד Zope ממשיך להתפתח, הקהילה ממש קטנה, עד כדי כך שמפתחי פייתון רבים אפילו לא שמעו עליה. למצוא הדרכות ותיעוד נרחב זה קשה, אז היו מוכנים לעשות הרבה חפצים (אם כי הקהילה ממש מועילה!). כמו כן, ייתכן שמפתחי פייתון שתיתקל בהם לא ירצו ללמוד את Zope ו”להדלל “את מערך המיומנות שלהם.

TurboGears

TurboGears היא מסגרת גמישה מאוד בעלת ארכיטקטורה הניתנת להרכבה באמת. זוהי מסגרת המתחזקת לפי הצרכים שלך ותוכלו להשתמש בה לבניית אפליקציה של קובץ יחיד או מבנה רב שכירות..

ל- TurboGears כמה תכונות אלגנטיות, שחלקן אינן קיימות במסגרות פופולריות (כמו Django) או שקשה לבנות אותן:

  • תמיכה מהשורה הראשונה למסדי נתונים מרובים
  • עסקאות מרובות מסדי נתונים
  • מודולרי מאוד – התחל עם קובץ בודד וסדר את הגודל שאתה צריך
  • ORM עוצמתי (SQLAlchemy, שהוא בוגר יותר ומסוגל יותר מ- ORM של Django)
  • ארכיטקטורה ניתנת לחיבור המבוססת על מפרט ה- WSGI
  • תמיכה מובנית לגיזום מסדי נתונים
  • ממשק מונע על ידי פונקציות לעומת היררכיות עמוקות ונוקשות מכוונות עצמים.

האם TurboGears בשבילך?

אם אתה רוצה להתפתח באושר ורוצה מסגרת נבדקת, בוגרת וחזקה, הרחק מהרעש התקשורתי של “מדהים, הבא-ג’ן” וכל זה, TurboGears מתאים מאוד. הוא מכובד מאוד בקהילה ויש לו תיעוד מלא ונרחב. בטח, TurboGears אינו דעתני, מה שאומר שההגדרה הראשונית ותצורת התצורה יכולות להיות יותר, אבל זו המסגרת האידיאלית לפיתוח יישומי ארגוני.

Web2py

Web2py התחיל כפרויקט תחביב ושוחרר בשנת 2007. מטרותיו הן להפוך את פיתוח האינטרנט לקל ונגיש לכולם.

כתוצאה מכך, Web2py נוקט בגישה של תלות אפסית עד קיצוניות – אין לה דרישות, אין מה להתקין וכולל עורך מבוסס אינטרנט מלא הכולל פיתוח, ניהול מסד נתונים, כמו גם פריסה..

אתה כמעט יכול לחשוב על זה כ- Android Studio, שהוא יותר סביבה שלמה מאשר רק מסגרת. כמה תכונות נחמדות שיש ל- Web2py הן:

  • כמעט שום עקומת למידה.
  • גרעין מינימלי (12 אובייקטים בלבד), שאפשר אפילו לשנן!
  • תבנית טהורה-פיתון
  • הגנה מפני התקפות XSS, CSRF והתקפות אחרות
  • ממשק API נעים ועקבי

האם Web2py בשבילך?

Web2py הוא מסגרת יציבה וכיפית, אך קשה להמליץ ​​עליה נגד אפשרויות אחרות כמו Django, Flask וכו ‘. כמעט ואין עבודות, וסיפור בדיקת היחידות אינו נהדר. עם זאת, ייתכן שתיהנו מממשק ה- API של הקוד ומהחוויה הכוללת שהמסגרת מציעה, במיוחד אם אתם בונים ממשקי API של REST.

CherryPy

CherryPy הוא מסגרת מיקרו נוספת שמטרתה לספק פונקציונליות מסגרת בסיסית ולצאת במהירות מהדרך.

למרות שזה דומה למיקרו-מסגרות אחרות כמו Flask, CherryPy מתהדר באבחנה מסוימת:

  • הוא מכיל שרת מובנה מרובי הליכי (דבר שנשאר ברשימת המשאלות של Flask)
  • שרת האינטרנט (יחיד) יכול לארח מספר יישומים!
  • הגש את היישום שלך כאפליקציית WSGI (לממשק עם אפליקציות WSGI אחרות) או כשרת HTTP רגיל (שמניב ביצועים טובים יותר)
  • תמיכה מהשורה הראשונה בפרופיל ובדיקת יחידות
  • פועל ב- PyPy (עבור גרוטאות הביצועים האמיתיות), Jython, ואפילו אנדרואיד

CherryPy עושה את כל זה, ואז את הרגיל שאתה מצפה ממסגרת אינטרנטית.

האם CherryPy בשבילך?

אם אתה בונה בעיקר שירותי RESTful, CherryPy הוא מתמודד הרבה יותר רציני מאשר בקבוק. זו מסגרת בת עשור שהתבגרה יפה ומתאימה ליישומים קטנים וגדולים כאחד.

סניק

עליית Node ומודל התכנות האסינכרוני שלה הותירו קהילות רבות שהרגישו מאחור, כולל פייתון. בתגובה, הופיע על הרדאר שלל מסגרות רשת אסינקניות, סניק להיות אחד מהם.

Sanic מעוצב בהשראת פלסק, במידה שהיא לוותה את מעצבי התוואי, העתקות העתקות ושאר העקרונות הבולניים. והם לא מתביישים להודות בזה. מה ש- Sanic מביא לשולחן, אם אתה חובב בקבוקים, נכון / י קלט / פלט שאינו חוסם כדי לעמוד ברמות הביצועים של יישום Node. במילים אחרות, Sanic הוא בקבוק עם אסינכרון / ממתין לתמיכה!

בהשוואה ל- CherryPy, לסאניץ ‘יש יתרון מדהים בביצועים (רק תחשוב איך זה יעבור נגד פלסק!). בדוק את התוצאות הבאות שנבדקו על ידי DataWeave:

כפי שאתה יכול לראות, ברגע שמספרי המקביל מתחילים לעלות על 50 בשנייה, CherryPy למעשה נחנק ומביא לשיעור כישלונות גבוה.

האם סאניץ ‘בשבילך?

למרות שמאפייני הביצועים של סאניץ ‘מפוצצים את כל השאר מהמים, יתכן שזה לא הבחירה הטובה ביותר לפרויקט הבא שלך. הסיבה העיקרית היא היעדר ספריות אסינכרוניות. עיקר הכלים והספריות הקיימים של פייתון נכתבו עבור גרסת ה- CPython חד-הברגה, ללא מחשבה מראש לפעולות במקביל או אסינכרוניות גבוהות. אם, למשל, ה- ORM המועדף עליך אינו תומך בפעולות אסינכרוניות, כל נקודת השימוש בסאניק מובסת.

בגלל סיבות הבשלות והזמינות הללו, לא נבחן עוד מסגרות אסינכרוניות בפייתון.

מזוני

נתקלתי במסגרת זו לפני זמן מה וחשבתי שזה צעד בכיוון הנכון. מאז, גרסה 2.0 שוחררה, ואני מרגיש שהגיע הזמן סוף סוף לתת מזוני קצת אהבה.

במילים פשוטות, Masonite היא גרסת הפייתון של Laravel (מסגרת PHP מפורסמת, למקרה שלא ידעת). למה זה משנה? זה משנה מכיוון שלארוול נבנתה על עקרונות רובי על מסילות, ויחד שתי המסגרות הללו מאפשרות למתמחים שאינם רובי לחוות את “דרך המסילה” של עשיית דברים.

מפתחים של Laravel (ובמידה מסוימת, Rails) ירגישו ממש בבית והיו פועלים תוך זמן קצר ממש. כשניסיתי את Masonite (והגשתי סוגיה או שניים, כולל באג!), הצלחתי לבנות ממשקי API של REST עם מחשבה אפסית בדיוק מכיוון שזיכרון שרירי Laravel שלי עשה הכל.

כמסגרת הכוללת ערכות מלאה עם סוללות, Masonite מביאה כמה דברים מעניינים לשולחן:

  • ORM בסגנון שיא פעיל
  • העברות בסיסי נתונים (אשר, בניגוד לג’נגו, צריכות להיות נוצרות על ידי היזם)
  • מיכל IoC רב עוצמה להזרקת תלות
  • CLI בעלים (שנקרא “מלאכה”) למשימות פיגום וריצה
  • תמיכה מהשורה הראשונה לבדיקת יחידות

ה”מתחרה “הגדול ביותר עבור מזוני הוא ג’אנגו, שכן הקהילה עושה כמיטב יכולתה לשווק את המסגרת כקל, מענגת והדבר הגדול הבא. אם זה יעלה על ג’אנגו זה משהו שהזמן יגיד (אם תשאלו אותי, יש לו זריקה הגונה), אבל לדיון בהשוואה בין השניים, ראו כאן ו כאן.

האם מזוני בשבילך?

Masonite הוא עדיין תינוק בהשוואה לג’נגו, כך שאין דרך להמליץ ​​עליו על פני ג’נגו. עם זאת, אם אתה עושה את הדרך (או דרך Laravel) לבצע דברים, אתה תעריך את מה שיש למסוניט להציע. זה אידיאלי לבניית אבות-טיפוס במהירות הזקוקים לכל מה שהוגדר מראש וקלה למעבר.

סיכום

לא חסרים מסגרות האינטרנט של פייתון, גדולים כקטנים. אמנם אתה יכול לאסוף כמעט כל דבר לפרויקט קטן, אך ליישום ארגוני יש דרישות שלא רבות מהמסגרות הללו יכולות למלא. אם תשאלו אותי, לפיתוח ארגוני, Django (במידה), Zope ו- TurboGears הם מה שעולה לכם בראש. ואפילו מבין אלה, אני נוטה כלפי TurboGears.

עם זאת, כל אדריכל ששווה את המלח שלו יכול להרים מיקרו-מסגרות ולגלגל את הארכיטקטורה שלהם. וזה פחות או יותר מה שקורה בפועל, מה שמסביר את ההצלחה של Flask ורעיונות דומים.

אם אתה חדש, אז קורס מקוון זה יעזור ללמוד את פייתון.

תגיות:

  • פייתון

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map