[תכנות] מסגרת האינטרנט הפיתונית המהירה ביותר: wheezy.web

wheezy_web_logo

wheezy.web אין לו לוגו; הכנתי את התמונה ב- GIMP.

הפסקתי לתכנת בפייתון הרבה זמן, אבל זה לא מונע ממני לחלוק איתך את הטכנולוגיות שאני מכיר;). לפני זמן מה נכנסתי לחיפוש אחר מסגרת האינטרנט "הטובה ביותר" בפייתון, שכן זו בה השתמשתי (Web2Py) הייתה איטית לעזאזל. המחקר שלי הוביל אותי ל wheezy.web; מי שמכיר אותו בוודאי עשה זאת דרך אמת מידה מרהיבה שעשה המחבר בבלוג שלו:

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

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

  • עובד עם פייתון 2, פייתון 3 y PyPy. גם אם 3 נותן ביצועים טובים יותר, עדיף להמשיך להשתמש ב- 2 עד ש -3 תהיה בשלה מספיק.
  • העיצוב שלה הוא מודולרי, כך wheezy.web הם עוד דברים: צפצוף. תבנית, wheezy.html, אבטחה... השתמש בחלקים שאתה רוצה.
  • תיעוד פשוט וקל להבנה.
  • אופטימיזציה אוטומטית של HTML (דוחס אותו כך שיידרש פחות מבלי להשתמש בכלים חיצוניים).
  • איך זה יכול להיות אחרת, זה כן תוכנה חופשית ומקור פתוח ; ד.
  • וכו '...

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

אם אתה משתמש פדורה ואתה מעוניין wheezy.web, יש לך מזל! הנה הפקודה שתתקין את החבילות הדרושות כדי לעקוב אחר ההדרכות שלה:

sudo dnf install python python-devel python3 python3-devel python-setuptools python-virtualenv libxml2 libxml2-devel libxslt libxslt-devel libmemcached libmemcached-devel memcached memcached-devel gzip ntpdate gettext uwsgi uwsgi-plugin-python socat nginx

ההדרכה שאנדריי מציע להתקין wheezy.web עם Nginx השתמש בסקריפט שתוכנן במיוחד עבור דביאן, כך שתצטרך לעשות זאת בעצמך אם אתה משתמש במערכת אחרת. במקרה שלי, UWSGI מספיק לי, אז מעולם לא ניסיתי את זה.

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

וזה הכל. מאמר קצר, אך רלוונטי. אני מבטיח להביא טכנולוגיות מעניינות יותר! נתראה ~.

אגב, סקרנות, אתה יודע למה קוראים לזה "צפצופים"? אנדריי הוא מעריץ של דביאן. אני משאיר את זה שם;).


תוכן המאמר עומד בעקרונותינו של אתיקה עריכתית. כדי לדווח על שגיאה לחץ כאן.

22 תגובות, השאר את שלך

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   ברונו קסיו דיג'ו

    ביצועים אינם הגורם היחיד. בהשוואה לג'נגו, זה די קריא. ובאמת, את 25000 הבקשות לשנייה צריך לראות בפעולה, אבל אני מעדיף להישאר עם 15000 (django) כדי לכתוב בריא, ואת שאר נציגי העבודה לתשתית, שהיא באמת זו שהולכת לקבל או לא, 25000 בקשות.

    בברכה! תודה על הנתונים 🙂

    1.    ברונו קסיו דיג'ו

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

      1.    Lajto דיג'ו

        מאמר השווי הוא משנת 2012. הוא שינה והרחיב אותו שוב בשנת 2013 והוא עצמו ציין כי הם מאותה שנה: «הגרסאות הזמינות האחרונות נכון לכתיבת שורות אלה (15 במרץ 2013)»

    2.    Lajto דיג'ו

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

      על מה שאתה אומר על התשתית, אני משתף חלקית את מה שאתה אומר; ההבדל של 10.000 הוא הרבה, במיוחד כאשר אנו מדברים על המסגרת הפופולרית והבוגרת ביותר לעומת מסגרת מאוד עדכנית ומעט ידועה. הגישה שלי היא תמיד לשלב יעילות מקסימאלית עם פרודוקטיביות מרבית, ואני חושב ש wheezy.web עושה את זה הכי טוב. השתמשתי ב- Web2Py (הכי הרבה), ג'אנגו, פירמידה ו- wheezy.web ואני מבטיח לך שהוא ללא תחרות. ברגע שאתה מסתגל לדרך שלו לעשות דברים, אתה לא מתנתק ממנו. היתרונות היחידים של ג'נגו הם הקהילה הגדולה שיש לה והמשאבים ברחבי האינטרנט; כלומר: קלות. wheezy.web הוא די חדש בהשוואה, ומעט מאוד אנשים יודעים על כך; אם אתה הולך קל יותר, טוב יותר Web2Py או Django xD.

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

      אני מבין מה אתה אומר על "כתיבה בריאה", אבל אתה אף פעם לא יודע כמה פרויקט יכול לצמוח בטווח הארוך. שימוש בכלים יעילים ובמקביל יותר, כמו גם בפשטות (אני טוען כי wheezy.web הוא פשוט לביצועים שיש לו), לחסוך כסף ולהפוך את גודל הפרויקט ליותר זמן מבלי לשנות את השפה. בסופו של דבר הכל נמצא בכסף שצריך לשלם עבור השרת שלו. ישנם אתרים מפורסמים מאוד ב- PHP, כאשר PHP נורא בביצועים ... אבל איך פותרים את הבעיה הזו? קונים שרתים טובים יותר. עם הגישה האחרת, זה נפתר על ידי תכנות טוב יותר וחיסכון במשאבים: P.

      אני מצטער שהרחבתי את עצמי כל כך הרבה. אני מאוד נלהב מ- xDDD. בברכה!

      1.    ברונו קסיו דיג'ו

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

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

        מה שאתה מציין לגבי ביצועים הוא לא רק קנה מידה אנכי (המקרה של PHP), פייסבוק למשל מציעה HHVM, שקראתי (לא נבדקתי) שמשפר את הביצועים ב -50% וזה לא קונה שרתים. במילים פשוטות, PHP ללא שכבות מטמון ו / או דרכי אופטימיזציה אחרות הוא "רע" כמו כל שפה אחרת ללא השנייה, ואני מתכוון לרע לתת להם שם, זה לא רק "תכנות טוב יותר".

        לחיים! 🙂

      2.    Lajto דיג'ו

        בוא נראה, מה שאין זה שכבה של הפשטה. אבל אתה משתמש בספרייה או במודול המתאימים לעבודה עם מסד הנתונים שלך ומחוצה לו, אין יותר מסתורין. למשל, שכבת ההפשטה של ​​Web2Py פשוטה מאוד, אך הביצועים צונחים בצורה דרמטית מכיוון שאפילו אינך יכול לכתוב SQL מותאם. הכל נמצא בפייתון; קל, אך בתמורה לביצועים.

        אני מכיר את HHVM ובדיוק בגלל זה שפות כמו PHP נוראות לעת המודרנית; אם פייסבוק הייתה בהאסקל או בארלאנג לא היה צורך ליצור HHVM. השתמש במטמון, דחיסת קבצים שנשלחים ומתקבלים וכו '. הם היבטים ברורים של כל התפתחות. העניין הוא שהכלי חייב להתאים :). ויש כלים שלא נותנים את זה. הדוגמה הטובה ביותר לכך היא JavaScript ... במקרה כזה לפחות יש פלאים כמו CoffeeScript, Dart וכו '. שמתאספים ל- JS.

        ¡Saludos!

      3.    ברונו קסיו דיג'ו

        מושלם! 🙂

        רק דבר אחד, פייסבוק אם אתה משתמש ב- haskell, ליתר דיוק ב- Haxl 🙂

      4.    להפסיק דיג'ו

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

        אגב, ב- web2py אם אתה יכול לכתוב SQL כדי לבצע את השאילתות ישירות.

        ברכות.

  2.   urKh דיג'ו

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

    1.    Lajto דיג'ו

      - ישנן כבר דוגמאות בתיעוד. בדף BitBucket שלו גם: https://bitbucket.org/akorn/wheezy.web/src/tip/demos/
      - בנושא פיתוח ופרודוקטיביות, אני באופן אישי חושב שסיכום זה ב"פשטות "הוא אפשרות טובה. מהן מסגרות פשוטות וקלות עדיין? בטוח. אבל לא עם כל כך הרבה ביצועים.
      - שמתי את הקישור לתיעוד במאמר xDDD.
      - מדוע אני אומר שזה פשע זה בגלל שאני מאמין שדף אינטרנט צריך להיות כמה שיותר יעיל, מכל הבחינות. כפי שציינתי קודם, ישנן מסגרות שקל יותר להשתמש בהן, אך השימוש ב- wheezy.web אינו תכנות גם C. אתה רק צריך להתאמץ יותר :).

      ברכות ^^.

  3.   Lajto דיג'ו

    אגב, למקרה שמישהו מתעצל לגלות וחושב ש- Wheezy Web זוכה רק בבקשות לשנייה ... הנה עוד כמה אמות מידה:

    http://paste.desdelinux.net/5128 (מסנן הספאם מ- FromLinux לא מאפשר לי לשים כל כך הרבה קישורים)

    אני מתנצל על שלא כללתי אותם בעבר. חשבתי שמספיק אחד כדי לצייר סקרנות xD. בברכה!

  4.   פנריז דיג'ו

    עד כאן מרוצה מג'נגו.

    1.    אוקליי דיג'ו

      אהה בכל פעם שאני קורא את הדברים האלה זה מכעיס אותי, חשבתי שזה רק עם מסגרות php (Symfony, Yii, CondeIgniter, Phalcon ...…… wdf !!). אם לג'אנגו כבר יש קהילה (די גדולה) והיא מסגרת מצוינת למה במקום לבזבז זמן להמציא את הגלגל מחדש אל תצטרף לצוות django. @ Lajto בשיחתך עם מחבר wheezy.web למה אתה לא שואל אותו אם מעולם לא חשבת להצטרף לקבוצת django, לעזאזל. לחיים ..

      1.    Lajto דיג'ו

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

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

        אני מבין ש"טוב יותר מסגרת אחת שעובדת טוב עם קהילה גדולה ", אבל זה לא כל כך קל. רק כדי שתבין, על ידי יצירת עמותה שטחית, ג'נגו כאילו היה דביאן ו wheezy.web כאילו היה ... קשת? ג'נטו? זו בהחלט דוגמה רעה, אבל אני חושב ש- xDDD מובן.

        ¡Saludos!

  5.   יוליסס דיג'ו

    מה דעתך על Lajto, היי אני מכין אפליקציה וקראתי את תיעוד wheezy.web וזו מסגרת האינטרנט הפיתונית הראשונה שהבנתי בפעם הראשונה 🙂 אתה מבין, אין לי הרבה ידע ברשתות ובאינטרנט, אבל אני יש משיכה מיוחדת לתכנות.
    האם תוכל לעזור לי כיצד לשנות את עולם ההלו כדי להפוך אותו לשרת ציבורי? אולי זו שאלה מאוד מטופשת, מצטער, אבל אני לא מוצא בתיעוד איך לעשות את זה.
    שאלה נוספת, 😉 בשיטות ה- get and post, מכיוון שאני מחזיר מידע שאינו דף HTML, האם אני מחזיר מידע כפי שהוא? כמחרוזת או רשימה או כל סוג של נתונים. הלקוח אפליקציה באנדרואיד.

    1.    Lajto דיג'ו

      שלום אוליס! אני כל כך שמח שאתה בודק wheezy.web: D.

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

      פתח מסוף והפעל את ארבע הפקודות הבאות (החלף את "test-web" בשם התיקיה הרצויה לפרויקט שלך):

      wget https://bitbucket.org/akorn/wheezy.web/downloads/quickstart-empty.zip

      לפתוח quickstart-empty.zip

      mv התחלה מהירה - רשת בדיקה ריקה

      rm quickstart-empty.zip

      אם ברצונך להשתמש ב- PIL, שנה את קובץ setup.py ובטל את התגובה של הקוד המתאים. ברגע שאתה מוכן, הפעל את שלוש הפקודות הבאות:

      web-test-cd

      הפוך לקנאה

      env / bin / easy_install uwsgi

      השרת שלך כבר מותקן. אם אתה רוצה לעשות אמת מידה מהירה כדי לראות אם זה עובד, להיות בתוך התיקיה, אתה מפעיל:

      הפוך מדד לכיסוי האף לבדיקה

      אני ממליץ לך לעבור אל "etc / development.ini" ולשנות את "limit-as = 120" ל- "limit-as = 512". זה כמה מגה-בייט של זיכרון RAM ה- uWSGI "יאכל", כך שניתן יהיה להגדיל אותו בעתיד במידת הצורך.

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

      הפוך את uwsgi

      בשאלות האחרות ... כברירת מחדל, השרת מתוכנת לרוץ ב- localhost. אם ברצונך להפוך אותו לציבורי, מכיוון שכבר יש לך אותו מוכן ורוצה להשתמש בו בשרת פיזי בייצור, פשוט פתח את "src / app.py" ואתר את הדברים הבאים: make_server (", 8080, main). הפרמטר הראשון הוא מחרוזת ריקה, נכון? ובכן, שם אתה שם את ה- IP של השרת שלך. הפרמטר השני הוא היציאה בה ברצונך להשתמש, אשר כברירת מחדל היא 8080.

      לבסוף, מה שאתה אומר על החזרת משהו אחר מלבד HTML, כמובן שאתה יכול! בתיעוד הם מסבירים כיצד להחזיר הכל: https://pythonhosted.org/wheezy.web/userguide.html#web-handlers

      ברכת שלום! כל מה שתגידו לי;).

      1.    יוליסס דיג'ו

        תודה רבה לאיטו, באמת הבהרת את ספקותי, ניסיתי עם django אבל כמו שאמרתי לך אני לא מהנדס מערכות ו- django אני חושב שזה מביא הרבה יותר ממה שהייתי צריך, השתמש ב- wheezy.web כדי לבדוק יישום באנדרואיד ולתקשר את זה עם שרת. משהו מאוד פשוט אבל די מהיר ופרקטי. היי שאלה נוספת, לאחרונה ראיתי שיש מהומה גדולה עם http / 2, איך אני יודע על איזה פרוטוקול עובד wheezy.web? האם אוכל ליצור שרת המשתמש ב- http / 2 ב- wheezy.web? או להמליץ ​​לי על ספר, בלוג, הדרכה שנמצאים בלוקים שיכולים להסביר את כל העניין של רשתות ותקשורת. שוב תודה.

      2.    Lajto דיג'ו

        שלום שוב אוליסס ^^.

        HTTP / 2 הוא עדכני מאוד ולא יאומץ ברצינות למשך שנה נוספת, אז אל תטרחו עם זה :). אם אתה רוצה אבטחה, השתמש ב- HTTPS וזהו.

        אני לא בטוח במה Wheezy Web משתמש ב- HTTP, אז אני מניח שזה יהיה WSGI.

        ברכות!

  6.   Lajto דיג'ו

    אגב, משהו כלום. בחלק מההפצות מופיעה הודעת אזהרה אודות .python-eggs. שום דבר לא קורה אם זה מופיע, אבל אם אתה מוצא את זה מעצבן אתה יכול להסיר אותו באמצעות:

    chmod go = ~ / .python-eggs

    ¡Saludos!

  7.   דייגו דיג'ו

    אני משתמש בג'נגו, אבל אבדוק בתיעוד כדי לראות איך זה עובד. תודה על השיתוף. בברכה

  8.   JDVillegas דיג'ו

    ניתן להשתמש בו מחלונות !!!, האם יש הדרכה ??

    תודה

  9.   לליתא דיג'ו

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