Mi Experiencia Personal Django Mi Experiencia Personal Lic. Javier Roa Benítez
Django. Mi experiencia Personal Mi encuentro con Python Vengo de ….. RPG400 Genexus ASP Visual Basic No me gustan: C en (cualquiera de sus formas) Java
Django. Mi experiencia Personal Mi encuentro con Python Estaba Trabajando por cerca de este lugar, en Republica Dominicana Y me ATRAPO … Python
Django. Mi experiencia Personal Mi encuentro con Python Porque quede atrapado? La curva de aprendizaje era extremadamente rápida Al fin incorporaba a mis habilidades un lenguaje que me permitía programar para Linux (sin que sea C ni Java) Siempre que quería hacer algo ya había una librería que me ayudaba a hacerlo Encontré una comunidad MARAVILLOSA, que respondia a tooodas mis preguntas en menos de 10 minutos…. PyAr(Python Argentina)
Django. Mi experiencia Personal Finalmente Mi encuentro con Había un proyecto en puerta Debía ser en ambiente WEB Lo que yo mas conocía era ASP Los clientes no querían saber nada de Windows, mas por las licencias Había que encontrar una herramienta de desarrollo rapido Yo ya conocía Python Entonces….. Lei sobre Frameworks basados en Python Y.. Django me pareció el mas interesante, porque: Habia mucha informacion Habia una comunidad formada y muy colaborativa
Django. Mi experiencia Personal Mis primeros pasos con Leyendo el Tutorial de Django Peleando con el paradigma Modelo/Vista/Controlador Tratando de comprender la programacion Orientada a Objetos Siguiendo al pie de la letra el Tutorial sin comprender muy bien lo que hacia
Django. Mi experiencia Personal Generalidades El paradigma MVC (Modelo/Vista/Controlador) Django lo resuelve como MTV M- Modelo: Para la conexión con bases de datos T - Plantilla o Témplate: Para Mostrar los Resultados V – Vista: Para gestionar los datos y presentarlos
Django. Mi experiencia Personal Generalidades El Modelo
Django. Mi experiencia Personal Generalidades La Plantilla o Template
Django. Mi experiencia Personal Generalidades La Vista
Django. Mi experiencia Personal Generalidades El Modulo URL
Django. Mi experiencia Personal Proceso Petición de Pagina: Búsqueda en URL de Función a ejecutar Ejecución de Función en Vista: Invocación a la Plantilla: Resultado:
Django. Mi experiencia Personal URL Particularidades: Los llamados se definen dentro de un “urlpatterns”, que es una TUPLA y puede contener hasta un máximo de 250llamados, pueden haber mas de un “urlpatterns” en el modulo URL
Django. Mi experiencia Personal URL Particularidades: Se puede definir el ID de un objeto como parametro de un URL de esta manera: r'^usuarios_clave_(?P<object_id>\d+)/$',chgp_usuario), En este caso ya se trasmite una clave y la recepcion de la misma en la funcion se hace de esta manera: def chgp_usuario(request, object_id): Esto al principio es muy comodo, pero es objetado muchas veces pues es muy visible la clave con el que se esta trabajando
Django. Mi experiencia Personal El Modelo El Modelo es uno de los componentes mas importantes de Proyecto Entre sus particularidades esta que no se puede hacer referencia de clave foranea a un objeto que aun no esta definido Por lo expresado se debe tener mucho cuidado en el diseño Se supone que el Modelo se escribe solamente despues de haber concluido totalmente el Analisis del Sistema a Desarrollar Perooooo… Todos sabemos que no es asi…. Por lo tanto tenemos que ser muy cuidadosos a la hora de modificar , sobre todo en las referencias a claves foraneas
Django. Mi experiencia Personal El Modelo La escritura del Modelo es para mi lo mas tedioso que existe Por ello construí mi propia herramienta para no escribir tanto
Django. Mi experiencia Personal El Modelo- La Herramienta
Django. Mi experiencia Personal La Plantilla Quieres hacer calculos en ella…. Olvidalo , para eso esta la vista Algunas Herramientas que ayudan: Condicionantes: if/ifequal/else En los bucles: forloop.first, forloop.last, forloop.counter Trabajando con valores: divisibleby, default, lengt_is Formateando valores: intpoint, floatformat, date Uniendo plantillas: Include extends
Django. Mi experiencia Personal La Vista Los parametros,generalmente son recibidos directamente en el request, aunque si se define object_id, tambien serecibe de esa forma La asignacion de un parametroauna variable se realiza mediante lafuncion : request.GET.get request.POST.get Dependiendo del tipo de form
Django. Mi experiencia Personal La Vista Como en la mayoria de los casos los parametros pueden venir en forma indistinta (Get o Post), cree una funcion que resuelve este caso: def request_GET(request,campo): valor='' valor= request.GET.get(campo, '') if valor=='': valor= request.POST.get(campo, '') return valor Se invoca desde la funcion con: msg=request_GET(request,'msg')
Django. Mi experiencia Personal La Vista Al invocar el template o html, devemos enviar objetos resultantes que permitiran mostrar los resultados en una paginapor medio de un diccionario: return render_to_response(“plantilla.html", { "titulo": titulo, "results": results, "query": query, "msg": msg, "b":b, "pag" : pag, "pag_ant" : pag_ant, "sis_nom": sis_nom}, context_instance=RequestContext(request))
Django. Mi experiencia Personal La Vista Esta forma de envio hace que con cada nuevo valor que necesitamos enviar, tenemos que agregar un elemento a este diccionario Para resolver esto, lo que hago es definir un diccionario “par”y en el mismo cargo los valores y es el unico “parametro” que envio return render_to_response(“plantilla.html", { "par": par,} context_instance=RequestContext(request))
Django. Mi experiencia Personal Donde esta cada modulo: Proyecto settings.py url.py aplicación models.py views.py templates xo1.html x02.html
Django. Mi experiencia Personal Miscelaneas: El admin de Django es una herramienta excepcional, existen aplicaciones que el 80% estan basadas en el Admin, solo se programa diferente, lo muy especifico Bootstrap es una buena herramienta para el template general de los Sistema
PyPy(Python Paraguay) Gracias Lic. Javier Roa Benítez jroabenitez@gmail.com Integrante de PyPy(Python Paraguay)