FormPump

צילום מסך תוכנה:
FormPump
פרטי תוכנה:
גרסה: 0.1.7
טען תאריך: 20 Feb 15
מפתחים: Dave Mankoff
רשיון: ללא תשלום
פופולריות: 5

Rating: nan/5 (Total Votes: 0)

FormPump הוא כלי Python שמשתלב עם המנועים פופולריים בניית תבנית, ומאפשרים לך למלא בצורה נקיה בצורות HTML.
FormPump הוא אוסף של הרחבות מנוע תבנית Python נכתבו כדי להפוך את הטפסים ב- HTML הרבה יותר קלים לעבוד איתו. אותו ישירות מתמודד עם הבעיות הקשורות למילוי ערכים לתשומות שלך, החלת תוויות לתשומות שלך ולהציג הודעות שגיאה בדרך מהירה. הוא עושה זאת על ידי החדרת ערכת תגים / פונקציות לתוך התבנית שלך שיוצרת אלמנטי צורות בצורה אינטואיטיבית וטבעית שהיא מהיר להסתגל לקוד הקיים.
נכון לעכשיו, FormPump תומך Jinja2.
מבוא [Jinja2] דוגמא
(דוגמאות שמוצגים בREADME זה מוצגות בJinja2. שפות בניית תבנית אחרות תהיה שימוש דומה.)
>>> מJinjaPump יבוא formpump
>>> מסביבת יבוא jinja2
>>> Env = איכות הסביבה (הרחבות = [JinjaPump])
>>> TPL = env.from_string ('' '
... {טופס% כיתה "דוגמא" =% "פשוטה-צורה"}
... {תווית% 'InP'} הזן ערך: {%% endlabel}
... {Text%% "InP"}
... {Endform%%}
... '' ')
>>> Tpl.render הדפסה ()


& Nbsp;
& Nbsp; <קלט סוג = = ערך "טקסט" שם "InP" = "" id = "6GiCLEkUToekNy8xuN8AnT2esddU8MG8" />

& Nbsp;>>> tpl.render הדפסה (form_vars = {'דוגמא': {'InP': 123}})

& Nbsp;
& Nbsp; <קלט סוג = = ערך "טקסט" שם "InP" = "" id = "pnBP2IoFmfExTQdDZe44GKsFN6wrVOPu" />

בדוגמא לעיל, אנו רואים שנוצר אובייקט תבנית פשוט המכיל טופס אחד. כאשר שניתנו ללא כל ויכוחים, זה פשוט מדפיס את הטופס עם מידע לא מולא ב. כאשר "form_vars" המיוחד dict מסופק, זה ממלא את כל ערכים שהיא יכולה למצוא לצורה כפי שהוא מייצר אותו.
ניתן גם להבחין תכונות הארוכות, מכוערות id שנקבעו. אלה נדרשים כדי שFormPump יכול לקשר תוויות עם תשומות; FormPump גורם להם עד כמה זה הולך. אתה חופשי לעקוף אותם בעצמך, פשוט על ידי מתן id שלך ועבור תכונות על האלמנטים שלך. FormPump באופן אוטומטי עוקב אחר התוויות ותשומות בתבנית ומנסה לקשר אותם בתבונה אחד עם השני, אבל רק כאשר אין לי התשומות id של שצוינו, ואין לי תוויות שלצוינה.
מילוי טפסים
FormPump ממלא טפסים על ידי מחפש את ערכי קלט במשתנה תבנית מיועדת. ברירת מחדל משתנה זה לform_vars אבל יכול להיות מוגדרת על ידי הגדרת מאפיין values_dict_name של הסיומת, (לJinja2, להגדיר את זה על הסביבה: env.values_dict_name).
form_vars הוא מילון של מילונים. מפתחות ברמה העליונים הם מזהה הקשר צורה, הסביר ביתר פירוט בהמשך. כל הקשר טופס מתייחס למילון אחר שהוא מערכת פשוטה של ​​זוגות מפתח-ערך שFormPump משתמשת כדי בדיקת ערכים לטופס. המפתחות מתייחסים לשם הקלט. הערכים הפכו את תכונת הערך * לקלט, יומרו ל- Unicode.
* הערה: לתשומות כמו כפתור רדיו, שבו הערכים שנקבעו מראש, FormPump משתמשת בערך form_vars כדי לקבוע איזה רדיו כפתור למיון קפדני, אם בכלל.
Context צורה של
FormPump מאפשר לך לקבל יותר מטופס אחד בתבנית שלך. כל צורה יכולה להיות שמות קלט חופפים. טפסי צבורה ייחודיים על ידי מה FormPump קורא הקשר הטופס. הדוגמא לעיל מראה הקשר צורה מוגדר "דוגמא" - זה הוא המחרוזת מייד לאחר מילת המפתח הצורה. המחרוזת חייבת להיות מחרוזת קבועה, לא ביטוי דינמי משתנה או אחר, (יש דרך לעקוף את זה מכוסה בהמשך).
דוגמא פשוטה תבהיר את השימוש בם:
& Nbsp;>>> TPL = env.from_string ('' '
... {טופס% ""%}
... {Text%% "InP"}
... {Endform%%}
... {טופס%% "b"}
... {Text%% "InP"}
... {Endform%%}
... '' ')
& Nbsp;>>> tpl.render הדפסה (form_vars = {'': {'InP': ''}, ב ': {' InP ':' B '}})

& Nbsp;


& Nbsp;

הקשרי טופס בעצם משרתים מטרה כפולה. מכשול משותף עם בעל צורות HTML מרובות בדף אחד הוא שיכול להיות קשה לקבוע איזו צורה הוגש אם יש לי שני הצורות אותה תכונת פעולה. הקשרי טופס יכולים לעזור.
עם הגדרות ברירת המחדל, כפי שמוצג עד כה, שאין להם השפעה ישירה על התפוקה. עם זאת, אם אתה מגדיר את רכוש form_name_key בהארכת, FormPump באופן אוטומטי להכניס קלט נסתר המכיל את טופס ערך ההקשר כשמו, (לJinja2, להגדיר את זה בסביבה).
& Nbsp;>>> env.form_name_key = '__'
& Nbsp;>>> TPL = env.from_string ('' '
... {טופס%% "דוגמא"}
... {Endform%%}
... '' ')
& Nbsp;>>> tpl.render הדפסה ()
<הסוג = קלט "" name = "הנסתר __" = ערך "דוגמא" />

הערך שהוגש לאחר מכן ניתן להשתמש כדי לזהות בקלות את הטופס שהוגש בשרת.
אבל, השימוש בתכונה זו מביאה את סיבוך אחד יותר! אומר שאנחנו רוצים שנהיה לי צורה אחת חוזרת ונשנית פעמים רבות בעמוד אחד. עם כל חזרה על הצורה, אנחנו רוצים לשנות את המשתנים המלאים מראש. לדוגמה, אניח שיש לך רשימה של אנשים בחברה, ואתה רוצה להיות מסוגל לערוך ולהגיש את העדכונים למספר הטלפון עבור כל אחד. לכן אתה רוצה את אותו formname הוגש בחזרה לשרת, אבל הקשר צורת _different כאשר מילוי הטופס. הזן את פונקצית form_ctx, המאפשרת לך לשנות את ההקשר שבו נראה את FormPump ערכים במהירות ההבזק. פונקצית form_ctx גם מאפשרת לך להקצות שמות הקשר דינמיים לטפסים שלך, שבו פונקצית הטופס הסטנדרטי לא:
& Nbsp;>>> TPL = env.from_string ('' '
...

    ... {% לאדם ב% אנשי}
    ...

  • ... {טופס%% "אדם"}
    ... {% Form_ctx "אדם. ד%"% אדם% ['id']}
    ... {% נסתרים% "id"}
    ... {תווית%% "טלפון"} {{אדם ['שם']}} {%% endlabel}
    ... {Text%% "טלפון"}
    ... {Endform%%}
    ...

  • ... {Endfor%%}
    ...

... '' ')
& Nbsp;>>> אנשים = [{"id": 1, 'שם': 'טלפון' 'ביל ב': '555-123-4567'},
... {"Id": 2, 'שם': "כריס ג ',' טלפון ':' 555-7654-321 '}]
& Nbsp;>>> tpl.render הדפסה (אנשים = אנשים,
... Form_vars = dict ([('אדם.% D'% אדם ['id'], אדם) לאדם באנשים]))

    & Nbsp;

  • & Nbsp;
    <הסוג = קלט "" name = "הנסתר __" = "ערך אדם" />
    & Nbsp;
    & Nbsp;
    & Nbsp;
    & Nbsp;

    & Nbsp;

  • & Nbsp;

  • & Nbsp;
    <הסוג = קלט "" name = "הנסתר __" = "ערך אדם" />
    & Nbsp;
    & Nbsp;
    & Nbsp;
    & Nbsp;

    & Nbsp;

אם אתה מסתכל למעלה, תוכל לראות שתי צורות, שניהם עם אותו שם הטופס, אבל עם ערכים שונים מילאו בזכות form_ctx הדינמי. פונקצית form_ctx משפיעה על כל התשומות שתבואנה אחריו. באפשרותך לציין form_ctx של מרובה בטופס אם אתה רוצה, כל אחד מהם הקדים את קודם. שים לב, עם זאת, עלול להיות מבלבל סגנונית.
שגיאות טופס
שגיאות צורה הרבה עבודה כמו form_vars. השימוש בפונקצית השגיאה בתבנית שלך כדי לציין בי שגיאות צריכה ללכת, ולאחר מכן ציין form_error כמילון מקונן של מילונים המכילים כל וכל הודעות השגיאה שאתה רוצה לשים ב. כל טעות שאינו מוצא ערך מקביל ב בדיקת form_error תישאר מחוץ לפלט הסופי.
>>> TPL = env.from_string ('' '
... {טופס%% "דוגמא"}
... {שגיאת% "field_A"%}
... {Text% "field_A"%}
... {שגיאת% "field_B"%}
... {Text% "field_B"%}
... {Endform%%}
... '' ')
>>> Tpl.render הדפסה (form_vars = {"דוגמא": {"field_A": "ואל", "field_B": "ואל B"}},
... = Form_errors {"דוגמא": {"field_B": "השגיאה B"}})

& Nbsp;
& Nbsp;
שגיאת B

& Nbsp;

שים לב גם שכל תשומות שמוצאים שגיאה יהיה מעמד css "שגיאה", הוסיף אליהם.
הודעות שגיאה כברירת מחדל הן פלט כמו לעיל & mdash; בdiv עם הכיתה "שגיאה-המסר". ניתן לציין סגנון השגיאה שלך הודעה על ידי הקצאת פונקציות למילון error_renderers ולאחר מכן מפרט את תכונת מפיק בתבנית: {מפיק שגיאת% =% "מותאמים אישית"}. . כברירת מחדל, כל השגיאות להשתמש במפיק "ברירת המחדל", שאתה חופשי לעקוף

דרישות :

    • Python

  • תוכנות אחרות של יזם Dave Mankoff

    htmlmin
    htmlmin

    12 May 15

    תגובות ל FormPump

    תגובות לא נמצא
    להוסיף הערה
    הפעל את התמונות!