que pip deje de funcionar adecuadamente para esto deberemos de seguir estos sencillos pasos 1. Desinstala la versión de pip de tu entorno virtual: 2. python -m pip uninstall pip setuptools 3. Descarga el código y nombrar el archivo get-pip.py de https://bootstrap.pypa.io/get-pip.py 4. Ejecuta el script get-pip: 5. python get-pip.py
de manera global para esto debemos de ejecutar el siguiente código en nuestra terminal con el entorno virtual activado. (entorno_virtual) $ python RUTA_DEL_ENVS\Scripts\django-admin.py startproject NOMBRE_PROYECTO
cual podemos describir la estructura de la base datos en código python. Django también provee una API (funciones y clases) para poder interactuar con los datos
de datos que se esté usando. • Los nombres de las tablas se generan automáticamente combinando el nombre de la app (polls) con el nombre, en minúsculas del modelo – question y choice (se puede modificar este comportamientos). • Las claves primarias (IDs) se agregan automáticamente (esto también se puede modificar). • Por convención, Django añade "_id" al nombre del campo de clave foránea (sí, se puede modificar esto también). Consideraciones al usar las migraciones de Django
un constraint FOREIGN KEY. No te preocupes por la parte del DEFERRABLE; indica a PostgreSQL no forzar la clave foránea hasta el final de la transacción. • Se ajusta a la base de datos que se esté usando, y entonces los tipos de campos específicos de la base de datos como auto_increment (MySQL), serial (PostgreSQL), o integer primary key(SQLite) se manejan por uno automáticamente. Lo mismo aplica para los nombres de los campos – e.g., el uso de comillas dobles o simples. • El comando sqlmigrate no corre la migración en la base de datos - solamente imprime por pantalla para mostrar cuál es el SQL que Django piensa es requerido. Es útil para chequear lo que Django va a hacer o si uno tiene administradores de base de datos que requieren el SQL para aplicar los cambios. Consideraciones al usar las migraciones de Django
usar una librería llamada Django Extensions, que brinda una colección de funcionalidades que podemos usar con manage.py $ python manage.py shell_plus $ pip install django-extensions Al instalarlo podemos usar, un comando que permite usar el shell con carga a todos los modelos de nuestra app
genera un detalle muy importante al realizar web de calidad Para el diseño de las URLs, hay que crear un módulo Python llamado URLConf. Es una tabla de contenidos para tu app, contiene un mapeo entre patrones URL y funciones de Python
la ubicación de funciones python de vistas. Las expresiones regulares permiten capturar valores en las URLs cuando un usuario pide una página, Django recorre los patrones hasta dar con uno, sino, manda a llamar una vista especial para un 404.
dos cosas: devolver un objeto HttpResponse con el contenido de la página solicitada, o levantar una excepción como Http404 Datos que recibe en base a los parámetros Carga un template Renderiza los datos
minimizar la redundancia. En settings, especifica una lista de directorios para revisar en DIRS. Si tu template existe en el primer directorio, se busca en el segundo directorio así sucesivamente. {% extends "base.html" %} {% block title %}Articles for {{ year }}{% endblock %} {% block content %} <h1>Articles for {{ year }}</h1> {% for article in article_list %} <p>{{ article.headline }}</p> <p>By {{ article.reporter.full_name }}</p> <p>Published {{ article.pub_date|date:"F j, Y" }}</p> {% endfor %} {% endblock %}