Mostrando las entradas con la etiqueta Curso. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Curso. Mostrar todas las entradas

domingo, 25 de octubre de 2020

🎁 Integrar SweetAlert a Vue JS

  
En esta clase gratis del curso Experto Vue JS con Django de Python, abordaremos la mensajería utilizando el plugin SweetAlert. Además que podrás ver un poco cómo va el proyecto del curso en Udemy

 

 

Curso Completo:  https://www.udemy.com/course/experto-en-vuejs-con-django-rest-framework/learn/?referralCode=8BDCEC50053221F3E22D


Mis otros Cursos: https://mailchi.mp/1fc9a9e05a5c/debs-8-cursos-oficial



jueves, 17 de septiembre de 2020

🚀Aprovecha Descuentos y Hazte Experto Web Developer

miércoles, 9 de octubre de 2019

El Curso más completo sobre Desarrollo web con Python y Django - Nuevo Mejor Precio - Descuento 93%


🛑 El #Curso más completo para aprender #Desarrollo #Web con #Python usando #Django EL MEJOR PRECIO EN @udemy_es
📢 Aprovecha 93% de #Descuento por tiempo y cupones limitados

📬 #jQuery #Ajax #bootstrap4 #APIRest #javascript #PostgreSQL

https://www.udemy.com/course/sistema-de-compra-y-facturacion-con-python-usando-django/?couponCode=DJCMPFC-1-PERS-1399


Descuento por el mes de OCTUBRE 2019

Sígueme para estar informado de promociones que saldrán en todo este mes

viernes, 4 de octubre de 2019

🙋 Última Oportunidad hasta del 95%- YA NUNCA MÁS 📆



Hola estimado.  Udemy cambiará su sistema de CUPONES el día 07/10/2019 (Próximo Lunes), por tanto, ya no podré generar cupón de descuento hasta del 95%, es por esa razón que te hago llegar el último cupón que generaré.

‼No pierdas la oportunidad de prepararte y avanzar en tu carrera.  Comparte este correo con tus amigos.  Último día Domingo 06 de Octubre del 2019.‼
Te dejo el enlace de cada curso  en su respectivo título.
Cupón LAST_PROMO95, vence 06/10/2019

El curso más completo para aprender desarrollo web con python 🐍 usando Django.
95% Descuento
✅ Domina el ORM de Django
86% Descuento
✅ Aprende a hacer RESTApi con Django desde CERO
90% Descuento
✅ Construye Web Api (RestAPI) con Net Core
90% Descuento
✅ Aprende a replicar Datos desde cualquier base de datos hacia cualquier base de datos, sin importar el Sistema Operativo

✅ Aprende las Bases de la programación en capas con ADO NET
90% Descuento

✅ Inicia en el ORM de Microsoft, llamado Entity FrameWork

Actualmente estoy trabajando en un nuevo curso, sobre REACT + DJANGO, espero sea de tu interés.
Gracias por tu confianza. 

jueves, 4 de abril de 2019

Ventanas Modales con Django usando Bootstrap y Vistas Basadas en Clases




Como podrás ver en las imágenes del inicio, este artículo trata de poder adaptar el proyecto desarrollado con Python usando Django, para utilizar ventanas modales.

Primero lo primero, debemos tener las librerías necesarias agregadas al proyecto.  Esto sería, jQuery y BootStrap.

<!-- Bootstrap Core CSS -->
<link rel="stylesheet" href="{% static 'base/css/bootstrap.min.css' %}">

<!-- jQuery -->
<script src="{% static 'base/js/jquery.min.js' %}"></script>

<!-- Bootstrap Core JavaScript -->
<script src="{% static 'base/js/bootstrap.min.js' %}"></script>


Luego, ya el proyecto en Django, trabajaremos con las SubCategoría, así que el proyecto contiene lo siguiente:

models.py
class SubCategoria(ClaseModelo):
categoria = models.ForeignKey(Categoria, on_delete=models.CASCADE)
descripcion = models.CharField(
max_length=100,
help_text='Descripción de la Sub Categoría'
)

def __str__(self):
return '{}:{}'.format(self.categoria.descripcion,self.descripcion)

def save(self):
self.descripcion = self.descripcion.upper()
super(SubCategoria, self).save()

class Meta:
verbose_name_plural = "Sub Categorías"
unique_together = ('categoria','descripcion')


views.py
class SubCategoriaView(LoginRequiredMixin, generic.ListView):
model = SubCategoria
template_name = "catalogos/subcategoria_list.html"
context_object_name = 'obj'
login_url = 'generales:login'


class SubCategoriaNew(SinPrivilegios, LoginRequiredMixin, generic.CreateView):
permission_required = "catalogos.add_subcategoria"
model = SubCategoria
template_name = "catalogos/subcategoria_form.html"
context_object_name = 'obj'
form_class = SubCategoriaForm
success_url = reverse_lazy("catalogos:subcategoria_list")


class SubCategoriaEdit(SinPrivilegios, generic.UpdateView):
permission_required = "catalogos.change_subcategoria"
model = SubCategoria
template_name = "catalogos/subcategoria_form.html"
context_object_name = 'obj'
form_class = SubCategoriaForm
success_url = reverse_lazy("catalogos:subcategoria_list")

urls.py
path('subcategorias', SubCategoriaView.as_view() , name='subcategoria_list'),
path('subcategorias/new', SubCategoriaNew.as_view() , name='subcategoria_new'),
path('subcategorias/edit/<int:pk>', SubCategoriaEdit.as_view(),
name='subcategoria_edit'),

Ahora debemos de hacer algunos cambios en el proyecto, principalmente en la plantilla base (puede ser en una plantilla específica, pero prefiero que ya esté habilitado para cualquier plantilla que herede de la base).  En dicha plantilla agregaremos dos cosas:
  • El div donde se "renderizará" la ventana modal
  • Funciones en JavaScript necesarias para abrir y cerrar la ventana modal
Todo lo anterior, lo puse al final del body de la plantilla base.



base.html
<div id="ventana_modal" class="modal fade" role="dialog"></div>

<script>
function abrir_modal(url)
{
$('#ventana_modal').load(url, function()
{
$(this).modal({
backdrop: 'static',
keyboard: false
})
$(this).modal('show');
});
return false;
}

function cerrar_modal()
{
$('#ventana_modal').modal('hide');
return false;
}
</script>

Notar que la función encargada de abrir el modal, tiene también la tarea de activar las opciones backdrop y keyboard, esto le indica a la ventana modal de bootstrap que no se cierre al hacer click fuera de ella.

El div con id ventana_modal, es donde se "renderizará" la plantilla y tiene el efecto fade, para cuando se cargue dicho modal.

Ahora, debemos corregir las plantillas, para que se haga el llamado a la función abrir_modal y ésta a su vez despliegue la ventana modal.

A como pudiste haber visto en el archivo de rutas, para mostrar todas las categorías se utiliza la ruta llamada subcategoria_list, quien a su vez utiliza la vista SubCategoriaView, donde está declarada la plantilla catalogos/subcategoria_list.html, la cual es la encargada de mostrar todas las subcategorías y a su vez posee los botones para crear o editar y a la vez hereda de la plantilla base.

subcategoria_list.html
{% extends 'base/base.html' %} {% block page_header %} Listado de Sub Categorías {% endblock page_header %}
{% block contenido %}
<div class="panel panel-default">
<div class="panel-heading">
<a class="btn btn-warning" onclick="return abrir_modal('{% url 'catalogos:subcategoria_new' %}')" href="#"><span class="fa fa-plus-circle"></span> Nueva SubCategoría en PopPup</a>
</div>
<!-- /.panel-heading -->
<div class="panel-body">
<table width="100%" class="table table-striped table-bordered table-hover" id="dataTables-example">
<thead>
<tr>
<th>Id</th>
<th>Categoría</th>
<th>Descripción</th>
<th>Estado</th>
<th>Creado</th>
<th>Modificado</th>
<th class="all">Acciones</th>
</tr>
</thead>
<tbody>
{% for item in obj %}
<tr>
<td>{{item.id}}</td>
<td>{{item.categoria}}</td>
<td>{{item.descripcion}}</td>
<td>{{item.activo|yesno:"Activo,Inactivo"}}</td>
<td>{{item.creado|date:'d/m/Y H:i'}}</td>
<td>{{item.modificado|date:'d/m/Y H:i'}}</td>
<td>
<a onclick="return abrir_modal ('{% url 'catalogos:subcategoria_edit' item.id %}')" class="btn btn-primary btn-circle" href="#">
<span class="fa fa-edit"></span>
</a>
<a href="{% url 'catalogos:categoria_del' item.id %}" class="btn btn-danger btn-circle">
<span class="fa fa-trash"></span>
</a>
</td>
</tr>
{% endfor%}
</tbody>
</table>
</div>
</div>
{% endblock contenido%}

De esta plantilla debes notar los botones para nueva y editar subcategoría.

<a class="btn btn-warning"  
onclick="return abrir_modal('{% url 'catalogos:subcategoria_new' %}')" 
href="#"><span class="fa fa-plus-circle">
</span> Nueva SubCategoría en PopPup 
</a>


<a  
onclick="return abrir_modal ('{% url 'catalogos:subcategoria_edit' item.id %}')" 
class="btn btn-primary btn-circle" href="#">
<span class="fa fa-edit"></span>
</a>


En cada uno de los botones se hace el llamado a la función abrir_modal, a quien se la pasa la ruta a mostrar.

Aunque ambas rutas apunten a dos vistas de clases diferentes, porque una hará el INSERT y la otra el UPATE. Lo que si tienen en común es que ambas utilizan la plantilla catalogos/subcategoria_form.html


Esta plantilla es igual a las que hayas podido trabajar en tus proyectos y es igual a la que trabajamos en el curso de Desarrollo Web con Python usando Django, con la diferencia que en el form se debe indicar como acción la ruta de la url para cada acción, por tanto se hace un pequeño truco, si la variable de contexto obj existe, quiere decir que el formulario hará una actualización, porque trae registros, si por lo contrario no existe, quiere decir que obj no existe o está vacío y se tratará de una inserción de registros.

{% if obj %}
<form role="form" action="{% url 'catalogos:subcategoria_edit' obj.pk %}" method="post" class="form-inline">
{% else %}
<form role="form" action="{% url 'catalogos:subcategoria_new' %}" method="post" class="form-inline">
{% endif %}

Este punto es muy importante, sino no podrás guardar o editar, el contenido completo del archivo es:

subcategoria_form.html
<div class="modal-dialog modal-lg">
<div class="modal-content">
{% if obj %}
<form role="form" action="{% url 'catalogos:subcategoria_edit' obj.pk %}" method="post" class="form-inline">
{% else %}
<form role="form" action="{% url 'catalogos:subcategoria_new' %}" method="post" class="form-inline">
{% endif %}
<div class="panel panel-default">
<div class="panel-heading">
Editar/Crear Categoría
</div>
<!-- /.panel-heading -->
<div class="panel-body">
{% csrf_token %} {{form.as_p}}
<button type="submit" class="btn btn-danger"><span class="fa fa-save"></span> Guardar</button>
<a href="{% url 'catalogos:subcategoria_list' %}" class="btn btn-success"><span class="fa fa-undo"></span> Cancelar</a>
</div>
</div>
</form>
</div>
</div>


Noten que esta plantilla NO HEREDA de base, ya que si lo hiciera, se mostrará la plantilla completa y no se verá el "efecto" modal, es por esa razón que no hereda.

Otro detalle son los dos primeros div de la plantilla, completan la estructura de una ventana modal de bootstrap (con los cierres correspondientes).

<div class="modal-dialog modal-lg">
<div class="modal-content">



Ya con eso podrás implementar ventanas modales de bootstrap utilizando Vistas Basadas en Clases.

El código fuente completo forma parte del curso Desarrollo Web con Python usando Django, curso en constante actualización y si te registras desde este sitio, obtendrás un 95% de descuento del precio total.  De USD 199.99 a sólo USD 9.99 o menos según el país donde te encuentres.

Te animo a inscribirte, ya que es un curso en constante actualización.
http://bit.ly/dj-3-2019-95p


También puedes ver otros dos cursos sobre Django, en los cuales se amplían el conocimiento y se explota más este magífico FrameWork para Web de Python.





Elabora RestFul API con Python usando Django Rest FrameWork



http://bit.ly/ORM4-2019





Domina el ORM de Django, para que sepas manejar mejor la forma en que Django interactúa con tu Motor de Base de Datos.
http://bit.ly/RestFulDjango022019

sábado, 9 de marzo de 2019

1,500 Suscriptores en Youtube, celebremos activando un curso gratis



#Suscriptores #Youtube #Celebrar #Curso #Gratis #SPA #AngularJS #PHP #PostgreSQL

Así como ven el título, llegamos a los 1,500 suscriptores y para celebrarlo hice este video, denle like para poder hacer efectivo el premio.


sábado, 10 de noviembre de 2018

Por tiempo y cupones limitados 100% Curso Entity FrameWork


#Cupones #Free #Udemy #Gratis #FreeCoupon #Course #EntityFrameWork #CSharp #SQLServer 100% #OFF

Por tiempo y cupones limitados, les ofrezco 100% Gratis, comparte para divulgar, muy agradecido

https://www.udemy.com/iniciando-con-entity-framework/?couponCode=EF1112018FREE

Lo que si te pido es que me dejes una buena reseña en este curso.

Si llegas tarde, aún te puedo ofrecer una fantástica promoción del 90%, precio rebajado de USD 99.99 a sólo USD 10.99. 

Para acceder al descuento especial, sólo debes dar click en el enlace siguiente:

http://debsconsultores.blogspot.com/2018/10/descuento-en-cursos-de-hasta-94.html

Puedes suscribirte a la lista de correo para estar atento a futuras promociones y/o descuentos.


sábado, 27 de octubre de 2018

Embeber Consola CMDER en Visual Studio Code


#Curso #Python #Django #VSC #VisualStudioCode #Setting #Code #Coding #OnLineCourse #OnLine #Console #Cmder

En esta ocasión vamos configurar Visual Studio Code para poder desarrollar aplicaciones con Django embebiendo la consola CMDER, de esa forma trabajar en la consola sin salir del VSC.

Primero que todo, debes descargar Visual Studio Code, para eso debes entrar al sitio oficial (https://code.visualstudio.com/)
 

Luego click en descargar haciendo click en el botón Download for Windows, una vez instalado, debemos descargar la consola CMDER.

Para la consola CMDER, si aún no la has descargado, debes dirigirte a cmder.net, donde muestra dos opciones de descarga (mini y full), yo recomiendo la opción full, pero por espacio, puedes descargar la versión mini.




Una vez descargado, debes descomprimirlo, ten encuenta la carpeta donde lo has vas a descomprimir.

En esa carpeta, debes crear un archivo bat, y grabarlo ahí en esa carpeta.

En mi caso, lo descomprimí en la carpeta C:\Portables\NoMios\cmder_1.3.6, el contenido del bat, es el siguiente (debes reemplazar la ruta por tu ruta). El nombre que le di fue vsc.bat (puede ser cualquier otro nombre, pero que no tenga espacios)

@echo off
SET CurrentWorkingDirectory=%CD%
SET CMDER_ROOT=C:\Portables\NoMios\cmder_1.3.6
CALL "%CMDER_ROOT%\vendor\init.bat"
CD /D %CurrentWorkingDirectory%







Una vez guardado el archivo, abre el Visual Studio Code y abre la configuración


Ahí debes agregar dos líneas (en la sección derecha), muy atento en la ruta del archivo vsc.bat,


"terminal.integrated.shell.windows":"C:\\WINDOWS\\system32\\cmd.exe",
"terminal.integrated.shellArgs.windows": ["/K","C:\\Portables\\NoMios\\cmder_1.3.6\\vsc.bat"]


Nota importante, es la ruta debe apuntar al archivo bat, poner siempre doble barra invertida (\\).

Guardar los cambios y reiniciar el Visual Studio Code.

Al reiniciarlo, abre la consola 


Se debería de ver a como sigue la imagen:


Como verás, ya tienes la consola integrada (embebida) en Visual Studio Code, de acá ya deberías poder trabajar tus desarrollos, en mi caso es con Django, pero bien puede ser Angular, Node u otro que dependa de la consola.


Si te ha gustado esta clase, te invito a que veas el curso completo con un descuento del 94% por tiempo limitado.


Promoción del 94% Por Tiempo Limitado
 

 
>