miércoles, 27 de marzo de 2019

Modificando el proyecto Alumnos de Django

Lo que haremos ahora dentro de nuestro proyecto Alumnos de Django será modificar y hacer que se vea mejor nuestra aplicación de datos_per modificando el archivo de modelos de la siguiente manera



class Datosperonales(models.Model):
    num_cont = models.CharField(max_length=10, primary_key= True,                                verbose_name='Numero de Control')
    nombre = models.CharField(max_length=100)
    SEXO = (('F','Femenino'),('M','Masculino'))
    sexo = models.CharField(max_length=1, choices=SEXO, default='M')
    Edad = models.IntegerField(help_text='Solo mayores de edad')
    Fecha_nacimiento = models.DateField()
    IS = 'IS'    LC = 'LC'    LAE = 'LAE'    CARRERA_CHOICES = (
        ('IS','Ing. en sistemas'),        ('LC','Lic en Contaduria'),        ('LAC','Lic en Administracion de Empresas')
    )
    Carrera = models.CharField(max_length=30, choices=CARRERA_CHOICES,                               default='IS')
    Telefono = models.CharField(max_length=10)
    email = models.EmailField()
    Domicilio = models.TextField()
Lo que cambio al anterior modelo es lo siguiente:
  • En la variable num_control se le agrego después de la llave primaria, un verbose_name para hacer que dentro de nuestra pagina se vea con ese nombre que se le asigna.
  • Se agrego un arreglo con 2 opciones para el campo de sexo, añadiendo choices indicando el arreglo, y si así se quiere, se puede poner una opción por defecto con default.
  • Se agrego un pequeño texto de ayuda para el campo de edad el cual nos dice "Solo mayores de edad".
  • Ademas se agrego un arreglo con 3 carreras para el campo de Carrera agregando de la misma manera las opciones con un choices dentro de Carrera y se puede poner una carrera por defecto.
Después de esto lo que debemos hacer es hacer una migracion utilizando la sentencia:

python manage.py makemigrations


Una vez migrado nuestros cambios podemos correr nuestro servidor con

python manage.py runserver

y entramos a la sección de /admin donde podremos ver los cambios que realizamos intentando agregar una nueva entrada


domingo, 24 de marzo de 2019

Haciendo conexion de mysql con las bases de datos de nuestro proyecto en django


Creamos una aplicacion con el comando 
django-admin startproject conexion

Entramos dentro de la carpeta que se creo, y vamos a instalar el conector de mysql con python
Dentro de la carpeta del proyecto, eescribiremos el siguiente comando
pip install mysqlclient

Se deberia instalar sin ningun error, pero la mayoria de las veces da errores.

Si da algun error acerca de visual C++ (cualquier version) hacer lo siguiente:

A mi me da el error pero veremos como solucionarlo.
entraremos a la siguiente pagina
y daremos hasta abajo para encontrar el archivo de instalacion de mysqlclient

Elegiremos dependiendo de nuestra version de python como vemos los archivos dicen cp27 cp35 cp36 cp37 Estas son las versiones de python 2.7 3.5 3.6 etc. solo nos hace falta elegir dependiendo de la version de python que tengamos y elegir segun la version de 32 o 64 bits que tengamos de nuestro python, no de nuestra computadora.

En mi caso yo tengo el python 3.7 para 32bits y se tendria que utilizar el siguiente archivo


Una vez descargado movemos el archivo dentro de nuestra carpeta del proyecto

y dentro de nuestro CMD utilizaremos el siguiente comando para instalarlo. (se recomienda copiar el nombre del archivo para no andar escribiendolo de poco en poco)
pip install (nombre dle archivo que hayan descargado)

Por ejemplo yo escrbiria
pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl


Una vez instalado el mysqlclient, ire a mysql workbench para crear una base de datos realizando la siguiente sentencia sql

E de mencionar que la base de datos se puede crear por medio del CMD pero para que se vea mas graficamente lo hare dentro del workbench


Ahora debemos ir a nuestro IDE de python Pycharm en mi caso, y buscaremos el archivo de settings de nuestro proyecto para realizar algunos cambios dentro de la parte de bases de datos
Dentro del archivo settings en la parte de las bases de datos escribiremos lo siguiente

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydatabase',
'USER': 'mydatabaseuser',
'PASSWORD': 'mypassword',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}

Esto sacado de la liga que nos da django para las bases de datos, y solo es cuestion de buscar donde diga que cuando se quiera utilizar mysql postgre oracle etc


En la parte de password va la contraseña que le hayamos dado a nuestro usuario root

Despues de hacer el cambio, nos vamos a el CMD a ejecutar una migracion para que se nos creen las tablas de nuestro proyecto
Si nos llega a dar algun error, como a mi, parecido al siguiente:
MySQLdb._exceptions.OperationalError: (2059, "Authentication plugin 'caching_sha2_password' cannot be loaded: The specified module could not be found.\r\n")
Al final de intentar migrar la base de datos, lo que sucede es que si se tiene una version mas nueva de MySQL instalada, las contraseñas estan encriptadas y le es mas dificil al momento de migrar la base de datos.
Tendremos que entrar a nuestro workbench de mysql y deberemos de utilizar la siguiente sentencia en un query
ALTER USER 'usuario'@'localhost' IDENTIFIED WITH mysql_native_password BY 'contraseña';

Cambiando el usuario y la contraseña correspondientes para hacer que la contraseña se vuelva una contraseña nativa.
Una vez realizado esto podemos realizar la migracion
Y sin singun problema

Ahora deberemos ir a nuestro workbench de mysql para poder ver si las tablas han migrado y lo haremos utilizando una sentencia de show tables
Damos un use (nombre de la base de datos) y despues un show tables para observar las tablas
y como podemos ver nuestras tablas de django se encuentran ahora en mysql.

Programa que pone 3 colores y 3 letras

include 'emu8086.inc' CUADRO MACRO XI,YI,XF,YF,COLOR MOV AX, 0600H ; MOV BH, COLOR ; COLOR DE FONDO Y LETRA MOV BL, 00H MOV CH...