Django API REST



Crear un Api REST en Django es muy sencillo solo necesitamos ir a la página de Django Rest Framework donde nos pedirá que instalemos

pip install djangorestframework
pip install markdown      


Una vez instalado tendremos que configurar el archivo settings.py
Primero necesitamos agregar     ('rest_framework', ) en la sección de INSTALLED_APPS

INSTALLED_APPS = (
    ...
    'rest_framework',
)

Las configuraciones globales


La configuración se realiza de manera global en archivo settings.py
El siguiente código da permisos de lectura y escritura, existen otras configuraciones de permisos más avanzadas como para limitar acceso a cualquier usuario y denegar a cualquier usuario no autenticado

    # Use Django's standard `django.contrib.auth` permissions,
    # or allow read-only access for unauthenticated users.
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
    ]
}

 Agregar modelos a la API REST

 Primero crearemos una app donde crearemos el modelo  



 Despues tenemos que agregar la app de Superhero a INSTALLED_APPS en settings.py



En el model.py de  la app Superhero crea tu propio modelo  



No olvides ejecutar el comando migate 


Ejecuta el comando python manage.py createsuperuser para crear un superusuario que sera util para manipular  la API REST 


El siguiente paso seria crear un archivo llamado Serializers.py en nuestra app Superhero


Existen varias maneras de generar una serializacion pero utilizando la clase ModelSerializer es muy facil

Solo creamos una clase SuperSerilizer lo interesante de esta clase es que no usa un models.Model si no un serializers.ModelSerializer un utilizar un  Meta para especificar el modelo a serializar así como sus campos 

Crear el View


Ahora solo faltaría crear un View, nosotros utilizaremos generics que nos ofrece rest_framework para hacer un View muy similar a los que nos ofrece django.



Lo único que tenemos que hacer es una clase que utilicé generics.ListCreateAPIView después en el queryset utilizando el ORM de django traemos todos los superhéroes y serializer_class que tenga referencia de la case a serializar 


Crear URL


Lo mas importante de este archivo es la línea urlpatterns = format_suffix_patterns(urlpatterns) 


Este es el resultado final solo nos falta ingresar los superhéroes 
 GIT

Java 8











Esta versión de java tiene muchas nuevas características como soporte a la programación funcional, así como el nuevo motor de java script, y nuevas APIS,

Funciones de Java 8

Expresión lambda
Este tipo de expresiones ya existían en el lenguaje c#, pero ventaja del uso de lambda es simplificar expresiones de una manera clara.

API de fecha y hora
Permite gestionar datos de hora y fecha y mayor facilidad en el manejo de zona-horaria.

Motor de JavaScript Nashhorn
Esta nueva versión remplaza a motor Rhino  por Nashorn, una de sus principales ventajas es la ya que compila directamente el código en la memoria y pasa el código de bytes a JVM(Java Virtual Machine)


Stream API
Se define como una secuencia de elementos que provienen de una fuente que soporta operaciones para el procesamiento de sus datos


Métodos de Referencia
Ayudan a apuntar a métodos por sus nombres 



¿Qué debo tener para usar java 8?
JDK 8



Si la versión es menor a 1.8 necesitas actualizar tu JDK Descargar

Verifica  la configuración de IDE como
  • Eclipse
  • Netbeans
  • Intellij
  • Etc

Ejemplo de Java 8


 intro java8




Tipo de triangulo









Para resolver este problema existen cuatro condiciones las cuales son :
  • No es un triángulo : Los valores dados de A , B , y C no forman un triángulo.
  • Equilátero : Es un triángulo con lados de igual longitud.
  • Isósceles : Es un triángulo con lados de igual longitud.
  • Escaleno : Es un triángulo con lados de longitudes diferentes.

Los datos que se muestran en la siguiente imagen corresponden de la tabla triangle, la que   tiene tres campos (a,b,c) que son de tipo int (entero)


Características de los triángulos


Triángulo equilátero





Triángulo escaleno

Triángulo isósceles















Condiciones

A = B Y A = B Equilátero
A + B <= C  O A + C <= B   O  B + C <= A  No es un triangulo
A = B Y A ¡=C  O  A = C Y A ¡=B  O  B = C Y A  ¡=B

Resultado











Ñ en C++




En c y c++ al momento de poner la letra Ñ se visualiza unos caracteres extraños ejemplo:



 Código


#include <iostream>
#include <conio.h>
using namespace std;
main(){
 cout<<"niños"<<endl; 
 getch();
}

1 solución


La primera solución es utilizando el código ASCII utilizando el determinado código de la letra, numero o símbolo que corresponde ejemplo:



Código


      
#include <iostream>
#include <conio.h>
using namespace std;
main(){
 printf("ni%cos \n",164);//ñ
 printf("ni%cos",165);//Ñ 
 
 getch();
}

2 solución

En lo personal es más eficiente esta manera ya que no emplea código ASCII, solo utiliza la librería #include <clocale> y la palabra setlocale, y aparte de visualizar las “ñ “también visualiza los acentos  ejemplo


Código

     
 #include <iostream>
#include <conio.h>
#include <clocale>

using namespace std;
main(){
 setlocale(LC_CTYPE,"Spanish");
 cout<<"Niños jugando, todavía  "<<endl;
 getch(); 

}



Parámetros 

categoría
Identificador de categoría de localización, Puede ser 0.
lugar
Identificador de configuración regional específica del sistema. Puede ser “ ” para el entorno local que es ingresa por uno mismo, en  nuestro caso es “Spanish”.

Categoría


LC_ALL selecciona toda la configuración regional
LC_COLLATE selecciona la categoría cotejo de la configuración regional
LC_CTYPE selecciona la categoría de clasificación caracteres del entorno local
LC_MONETARY selecciona la categoría de formato monetario de la configuración regional
LC_NUMERIC selecciona la categoría de formato numérico de la configuración regional
LC_TIME selecciona el tiempo de la categoría de formato de la configuración regional

Años bisiestos en python



    Para realizar los años bisiestos en Python se deben considerar 3 puntos importantes los cuales son:

  • ·         Es divisible entre 4
  • ·         No es divisible entre 100
  • ·         Es divisible entre 400

     Ejemplo de años bisiestos

Año

           2012
           2016
           2020
           2024
           2028
           2032
           2036
           2040
           2044
           2048
           2052

Código


print "Ano bisiesto"
ano = int( raw_input("Ingresa el ano : "))

if  ano %4==0  and ano %100 !=0 or ano % 400==0 :
 print "Es bisiesto"
else:
 print "No es bisiesto"