Django desde la versión 1.5 es compatible con Python 3, muchos programadores han estado probando y portando sus aplicaciones de Django a esta nueva versión por las ventajas que ofrece.
Agregamos main en demo/settings.py en INSTALLED_APPS
Ahora, ejecute migrate de nuevo para crear las tablas del modelo en la base de datos
Aunque la mayoría del código Python está escrito para Python 2.x, Python 3 es el presente y futuro de este lenguaje de programación.
Python 2.7.8 fue lanzado en Octubre de 2014. La rama 2.x no tendrá más lanzamientos importantes, aunque la versión 2.7 en su vida útil tendrá un período prolongado de correcciones de errores y huecos de seguridad.
Python 3.x continúa siendo desarrollado activamente. El lanzamiento más reciente de Python 3.4, fue el 6 de Octubre del 2014.
¡Usa la ultima versión estable!
La última versión estable es la 3.4.2, al momento de escribir este articulo, la versión de Ubuntu 14.04 viene con la 3.4.0, es la que usare para este tutorial.Entorno Virtual con Python 3
$ pyvenv-3.4 --without-pip py3 # py3 es el nombre del virtualenvActivar el entorno vitual:
$ cd py3Verifica que el entorno virtual esta en Python 3:
$ source bin/activate
(py3) $
(py3) $ python --versionInstalar pip:
Python 3.4.0
(py3) $ curl https://raw.githubusercontent.com/pypa/pip/master/contrib/get-pip.py | python
Django
(py3) $ pip install djangoCrear un proyecto:
(py3) $ django-admin startproject demoCrear la base de datos en Django 1.7
(py3) $ cd demo
(py3) $ python manage.py migrate
Servidor de Desarrollo
Probamos nuestro servidor de desarrollo a ver si todo va bien hasta ahora(py3) $ python manage.py runserver
Performing system checks...Probamos en la dirección http://127.0.0.1:8000
System check identified no issues (0 silenced).
November 01, 2014 - 03:00:12
Django version 1.7.1, using settings 'demo.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Creado una Aplicación
Vamos a crear una aplicación:(py3) $ python manage.py startapp mainCreamos el modelo de la Aplicación en main/models.py
from django.db import modelsComo podrán ver se usa el método __str__ en vez de __unicode__, ya que es uno de los cambios en Python 3
class Persona(models.Model):
nombre = models.CharField(max_length=100)
apellido = models.CharField(max_length=100)
def __str__(self):
return self.nombre
Agregamos main en demo/settings.py en INSTALLED_APPS
INSTALLED_APPS = (Ahora ejecutamos:
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'main',
)
(py3) $ python manage.py makemigrations mainMediante la ejecución de makemigrations, le decimos a Django que se han hecho algunos cambios en el modelo (en este caso, son nuevos) y que desea que los cambios se guarden como una migración.
Ahora, ejecute migrate de nuevo para crear las tablas del modelo en la base de datos
(py3) $ python manage.py migrate
Creando el usuario Administrador
Para crear un usuario que puede iniciar sesión en el sitio de administración. Ejecute el siguiente comando:(py3) $ python manage.py createsuperuserComo podrás ver, hasta aquí hemos creado una aplicación básica de Django usando Python 3, te recomiendo que revises la documentación para la creación de sitios web con Django.
¡Consideraciones Importantes!
- Chequea siempre si los paquetes que vas a utilizar desde PyPi son compatibles con Python 3
- En un proyecto Django, compruebe en los modelos, los métodos __str __ (). Si los tiene, es un buen indicador de que es compatible con Python 3.
- Utilice 2to3 para escanear el código de problemas de compatibilidad.
- Revisa el sitio donde va correr en producción tu aplicación, en el caso de Linux, la mayoría de las distribuciones ya tienen Python 3 instalado, y es accesible a los usuarios finales. En general, la eliminación de Python 2 por defecto, ha sido gradual. Sin embargo, hay algunos módulos clave que pueden requerir el uso de Python 2 en lugar de Python 3
- Ya existen cerca de 500 paquetes de Django compatibles con Python3, eso lo puedes revisar en la pagina de Django Packages.
Aunque la mayoría del código Python está escrito para Python 2.x, Python 3 es el presente y futuro de este lenguaje de programación.
Python 2.7.8 fue lanzado en Octubre de 2014. La rama 2.x no tendrá más lanzamientos importantes, aunque la versión 2.7 en su vida útil tendrá un período prolongado de correcciones de errores y huecos de seguridad.
Python 3.x continúa siendo desarrollado activamente. El lanzamiento más reciente de Python 3.4, fue el 6 de Octubre del 2014.
Recursos útiles
Los siguientes enlaces son recursos que pueden revisar a fin de tener mas información sobre Python 3 y como portar sus aplicaciones a esta versión del lenguaje.- Python.org - Página Oficial de Python
- getpython3.com - Este sitio tiene como objetivo ser un recurso para para desarrolladores de Python 3
- Python 3 Porting Guide
- My experiences with Django and Python 3 - Blog de Daniel Greenfeld
- Pagina para revisar los módulos mas populares portados a Python 3
- La Documentación de Django sobre Python 3