FormPump

Software captura de pantalla:
FormPump
Detalles de software:
Versión: 0.1.7
Fecha de carga: 20 Feb 15
Promotor: Dave Mankoff
Licencia: Libre
Popularidad: 5

Rating: nan/5 (Total Votes: 0)

FormPump es una herramienta de Python que se integra con motores de plantillas populares, lo que le permite llenar limpiamente en formularios HTML.
El FormPump es un conjunto de extensiones del motor plantilla Python escritas para hacer formularios HTML mucho más fácil trabajar con ellos. Aborda directamente los problemas relacionados con la cumplimentación de los valores en las entradas, aplicar etiquetas a sus entradas y mostrar mensajes de error de una manera rápida. Lo hace mediante la introducción de un conjunto de etiquetas / funciones en su plantilla que crean elementos se forma en una forma intuitiva y natural que es rápido para adaptarse a código existente.
En la actualidad, FormPump apoya Jinja2.
Un introductoria [Jinja2] Ejemplo
(Los ejemplos que se muestran en este README se muestra en Jinja2. Otros lenguajes de plantillas tendrán un uso similar.)
>>> From JinjaPump importación formpump
>>> From Jinja2 Ambiente importación
>>> Env = Medio Ambiente (extensiones = [JinjaPump])
>>> Tpl = env.from_string ('' '
... {Forma% "ejemplo" class = "simple-forma"%}
... {% Etiqueta 'inp'} Introduzca un valor: {% ENDLABEL%}
... {Texto% "INP"%}
... {%}% Endform
... '' ')
>>> Tpl.render print ()


& Nbsp;
& Nbsp;

& Nbsp;>>> tpl.render impresión (form_vars = {"ejemplo": {"INP": 123}})

& Nbsp;
& Nbsp;

En el ejemplo anterior, vemos un objeto simple plantilla se crea que contiene un formulario. Cuando rendido sin ningún argumento, simplemente imprime el formulario sin información de rellenado. Cuando los "form_vars" especiales se proporciona dict, se llena todos los valores que puede encontrar en la forma como se genera.
También puede observar las largas atributos, id feas que se establecieron. Estos son necesarios para que FormPump puede asociar etiquetas con los insumos; FormPump les compensa lo que va. Eres libre para anular usted mismo simplemente proporcionando su propia identificación y de atributos en sus elementos. FormPump un seguimiento automático de las etiquetas y los insumos en la plantilla y los intentos de asociarlos de forma inteligente entre sí, pero sólo cuando las entradas no tienen de id especificado, y las etiquetas no tienen por que está especificado.
La cumplimentación de formularios
FormPump rellena formularios por buscar valores de entrada en la variable de plantilla designada. Esta variable por defecto form_vars pero se pueden configurar mediante el establecimiento de la propiedad values_dict_name de la extensión (por Jinja2, establezca este en el medio ambiente: env.values_dict_name).
form_vars es un diccionario de diccionarios. Teclas de nivel superior son los identificadores de contexto forma, explican con más detalle a continuación. Cada contexto forma se refiere a otro diccionario que es un simple conjunto de pares clave-valor que FormPump utiliza para buscar los valores para el formulario. Las teclas se refieren al nombre de la entrada. Los valores se convierten en el atributo de valor * para la entrada, convierte a Unicode.
* Nota: Para las entradas como un botón de radio, donde se predeterminan los valores, FormPump utiliza el valor form_vars para determinar qué botón de opción para la preselección, en su caso.
Contexto de Forma
FormPump le permite tener más de una forma de la plantilla. Cada forma puede tener nombres de entrada que se superponen. Las formas se desambiguados por lo FormPump llama al contexto formulario. El ejemplo anterior muestra un contexto formulario establecido al "ejemplo" - que es la cadena inmediatamente después de la palabra clave formulario. La cadena debe ser una cadena constante, no una expresión dinámica variable o otra, (hay una forma de evitar esto cubierto más adelante).
Un simple ejemplo debe aclarar su uso:
& Nbsp;>>> tpl = env.from_string ('' '
... {Forma% "a"%}
... {Texto% "INP"%}
... {%}% Endform
... {Forma% "b"%}
... {Texto% "INP"%}
... {%}% Endform
... '' ')
& Nbsp;>>> tpl.render impresión (form_vars = {'a': {'inp': 'A'}, 'b': {'inp': 'B'}})

& Nbsp;


& Nbsp;

Contextos Formulario realidad tienen un doble propósito. Un obstáculo común con tener múltiples formularios HTML en una sola página es que puede ser difícil determinar qué forma se presentó si ambas formas tienen el mismo atributo de acción. Contextos de formularios pueden ayudar.
Con la configuración predeterminada, como se muestra hasta el momento, no tienen efecto directo en la salida. Sin embargo, si se establece la propiedad form_name_key en la extensión, FormPump insertará automáticamente un campo oculto que contiene el valor formulario contexto como su nombre, (por Jinja2, establezca este en el medio ambiente).
& Nbsp;>>> env.form_name_key = '__'
& Nbsp;>>> tpl = env.from_string ('' '
... {Forma% "ejemplo"%}
... {%}% Endform
... '' ')
& Nbsp;>>> tpl.render print ()


El valor presentado a continuación, se puede utilizar para identificar fácilmente el formulario presentado en el servidor.
Pero, esta función nos lleva a una complicación más! Digamos que quiere tener una forma repitió varias veces en una sola página. Con cada repetición de la forma, queremos cambiar las variables que están precargadas. Por ejemplo, supongamos que tiene una lista de personas en una empresa, y que desea ser capaz de editar y enviar actualizaciones al número de teléfono para cada uno. Por lo tanto, desea que el mismo formname presentado de nuevo al servidor, pero un contexto forma _different al rellenar el formulario. Introduzca la función form_ctx, que le permite cambiar el contexto en FormPump mira hacia arriba los valores de sobre la marcha. La función form_ctx también le permite asignar nombres de contexto dinámicos a las formas, que hace la función de forma estándar no:
& Nbsp;>>> tpl = env.from_string ('' '
...

    ... {% For persona en personas%}
    ...

  • ... {Forma% "persona"%}
    ... {% Form_ctx "persona.% D"% persona ['id']}%
    ... {% Escondido "id"%}
    ... {% Etiqueta de "teléfono"%} {{persona ['name']}} {% ENDLABEL%}
    ... {Texto% "teléfono"%}
    ... {%}% Endform
    ...

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

... '' ')
& Nbsp;>>> personas = [{"id": 1, 'nombre': 'Bill B.', el 'teléfono': '555-123-4567'},
... {"Id": 2, "nombre": "Chris C. ', el' teléfono ':' 555-7654-321 '}]
& Nbsp;>>> tpl.render impresión (gente = gente,
... Form_vars = dict ([('persona.% D'% persona ['id'], persona) por persona en las personas]))

    & Nbsp;

  • & Nbsp;

    & Nbsp;
    & Nbsp;
    & Nbsp;
    & Nbsp;

    & Nbsp;

  • & Nbsp;

  • & Nbsp;

    & Nbsp;
    & Nbsp;
    & Nbsp;
    & Nbsp;

    & Nbsp;

Si se mira de arriba, verás dos formas, ambas con el mismo nombre de formulario, pero con diferentes valores introducidos en agradecimiento a la form_ctx dinámico. La función form_ctx afecta a todos los insumos que vienen después de ella. Puede especificar varios de form_ctx en un formulario si usted quiere, cada uno adelantarse al anterior. Tenga en cuenta sin embargo que su puede llegar a ser estilísticamente confuso.
Errores Form
Errores de formulario funciona parecido form_vars. Utiliza la función de error en su plantilla para indicar dónde deben ir los errores y, a continuación, especifique form_error como un diccionario de diccionarios anidada que contengan cualquiera y todos los mensajes de error que quisiera poner en. Cualquier error que no encuentra un valor correspondiente en el búsqueda form_error se quedará fuera de la salida final.
>>> Tpl = env.from_string ('' '
... {Forma% "ejemplo"%}
... {Error% "Field_A"%}
... {Texto% "Field_A"%}
... {Error% "Field_B"%}
... {Texto% "Field_B"%}
... {%}% Endform
... '' ')
>>> Tpl.render impresión (form_vars = {"ejemplo": {"Field_A": "val A", "Field_B": "val B"}},
... Form_errors = {"ejemplo": {"Field_B": "Error B"}})

& Nbsp;
& Nbsp;
Error de B

& Nbsp;

Tenga en cuenta también que todas las entradas que se encuentran un error tendrá la clase "error" css añadido a ellos.
Los mensajes de error por defecto se emiten como la de arriba & mdash; en un div con el "mensaje de error" de clase. Puede especificar su propio estilo de mensaje de error mediante la asignación de funciones a su diccionario error_renderers y especificando el atributo de render en la plantilla: {render error% =% "costumbre"}. . De forma predeterminada, todos los errores utilizan el procesador de "default", que usted es libre para anular

Requisitos :

  • Python

Otro software de desarrollador Dave Mankoff

htmlmin
htmlmin

12 May 15

Comentarios a la FormPump

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!