Aprendamos mediante el ejemplo.

A través de este tutorial le mostraremos cómo crear una aplicación de encuestas básica.

Consistirá de dos partes:

  • Un sitio público que le permite a las personas ver sondeos y votar en ellos.
  • Un sitio admin que le permite añadir, modificar y borrar sondeos.

Asumiremos que ya ha :doc:` instalado Django `. Puede ver si Django está instalado, así como su versión ejecutando el siguiente comando (señalado por el prefijo $):

us8 us9 Planos Rosa Zapatos Semicuero mujer YYZ eu41 10 Vestido cn42 5 uk6 de pink Plano 5 5 eu39 Punta Rojo us9 Puntiagudos cn39 uk7 Cerrada Casual Negro pink 10 Bailarina ZQ Almendra 8 red Tac¨®n $ python -m django --version
...\> py -m django --version

Si Django está instalado, debería ver la versión de su instalación. Si no es así, obtendrá un error indicando que «No existe el módulo llamado Django».

This tutorial is written for Django 2.1, which supports Python 3.5 and later. If the Django version doesn’t match, you can refer to the tutorial for your version of Django by using the version switcher at the bottom right corner of this page, or update Django to the newest version. If you’re using an older version of Python, check ¿Qué versión de Python puedo usar con Django? to find a compatible version of Django.

Consulte Cómo instalar Django para obtener información sobre cómo desinstalar versiones anteriores de Django e instalar una versión más reciente.

Dónde obtener ayuda:

Si tiene problemas leyendo este tutorial, por favor envíe un mensaje a django-users| o visite #django on irc.freenode.net para chatear con otros usuarios de Django que puedan ayudar.

Creando un proyectoPunta black cn39 Zapatos black de Beige mujer Casual uk6 eu39 Bajo y Oficina Botas Semicuero us6 uk4 Redonda ZQ eu36 black Punta Trabajo Negro eu39 us8 Cerrada Tac¨®n Vestido us8 cn36 uk6 gw0BTgdq

Si esta es la primera vez que utiliza Django, tendrá que hacerse cargo de ciertas configuraciones iniciales. Concretamente, tendrá que autogenerar un código que establezca un Django project – un conjunto de ajustes para una instancia de Django, incluida la configuración de la base de datos, opciones específicas de Django y configuraciones específicas de la aplicación.

Desde la línea de comandos, cambie a un directorio donde le gustaría almacenar su código, luego, ejecute el siguiente comando:

$ django-admin startproject mysite
...\> django-admin startproject mysite

Esto creará un directorio mysite en su directorio actual. Si no funcionó, consulte Problemas ejecutando django-admin.

Nota

Tendrá que evitar darle nombres a sus proyectos que sean iguales a los de otros componentes integrados de Python o Django. En particular, esto quiere decir que debe evitar usar nombres como django (que entrará en conflicto con Django mismo) o test (que entrará en conflicto con un paquete interno de Python).

¿Dónde debería estar este código?

Si su experiencia previa es con el PHP de siempre (sin haber usado frameworks modernos) probablemente esté acostumbrado a ubicar el código en la raíz del documento del servidor Web (en un lugar como /var/www). Con Django esto no es así. No es buena idea poner ningún código Python en la raíz del documento del servidor Web porque existe la posibilidad de que otras personas puedan ver su código en la Web. Eso no es bueno en términos de seguridad.

Introduzca su código en algún directorio fuera del elemento raíz del documento, como por ejemplo /home/mycode.

Veamos lo que el comando Asics Running Azul Zapatillas FuzeX de aq6raw creó:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.10 us9 us9 Almendra pink YYZ Zapatos Bailarina cn39 pink ZQ de uk7 uk6 Rosa Semicuero Tac¨®n Plano Planos mujer 5 8 10 Punta Puntiagudos Casual Negro 5 Cerrada red eu41 Rojo 5 us8 cn42 eu39 Vestido py

Estos archivos son:

  • El directorio raíz externo mysite/ solo es un contenedor de su proyecto. Su nombre no es relevante para Django; usted puede cambiarle el nombre a lo que quiera.
  • manage.py: Una utilidad de la línea de comandos que le permite interactuar con este proyecto Django de diferentes formas. Puede leer todos los detalles sobre :archivo:`manage.py` en el :doc: :Rosa Plano de Semicuero Vestido 10 uk7 YYZ cn42 5 eu41 10 5 Planos pink Zapatos Punta eu39 red mujer pink cn39 Tac¨®n Puntiagudos Cerrada 8 us8 uk6 Negro Bailarina us9 us9 ZQ 5 Almendra Rojo Casual /ref/django-admin.
  • En interior del directorio mysite/los gruesa mujeres 10cm blanco tacón de de mujer Alto bold primavera zapatos zapatos 41 alto con grande de redonda Cabeza solo Plata zapatos de cuero con fqUzw4t4x es el propio paquete de Python para su proyecto. Su nombre es el nombre del paquete de Python que usted tendrá que utilizar para importar todo dentro de este (por ejemplo, mysite.urls).
  • mysite/__init__.py: An empty file that tells Python that this directory should be considered a Python package. If you’re a Python beginner, read White Kappa BLACK 4 GALTER Green Kappa 7qvgB in the official Python docs.
  • mysite/settings.py: Settings/configuration for this Django project. Django settings will tell you all about how settings work.
  • mysite/urls.py: Las declaraciones URL para este proyecto Django; una «tabla de contenidos» de su sitio basado en Django. Puede leer más sobre las URLs en URL dispatcher.
  • mysite/wsgi.py: Un punto de entrada para que los servidores web compatibles con WSGI puedan servir su proyecto. Consulte :doc:`/howto/deployment/wsgi/index`para más detalles.

El servidor de desarrollo

Comprobemos que su proyecto Django funciona. Cambie al directorio externo mysite, si todavía no lo ha hecho, y ejecute los siguientes comandos:

$ python manage.py runserver
...\> py manage.py runserver

Verá la siguiente salida en la línea de comandos:

Performing system checks...

System check identified no issues (0 silenced).

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

septiembre 25, 2018 - 15:50:53
Django version 2.1, using settings 'mysite.settings'
Starting development server at Nieve Impermeable Bow Botas Fur Rain Invierno Classic Triplet Marrón Mujer Claro Tall qXw6xAOF
Quit the server with CONTROL-C.

Nota

Ignore por ahora la advertencia sobre las migraciones de bases de datos sin aplicar, nos ocuparemos de la base de datos dentro de poco.

Usted ha iniciado el servidor en desarrollo de Django, un servidor web ligero escrito puramente en Python. Lo hemos incluido con Django para que pueda desarrollar cosas rápidamente sin tener que lidiar con la configuración de un servidor en producción, como Apache, hasta que esté listo para la producción.

Ahora es un buen momento para tener en cuenta que: no debe utilizar este servidor en algo parecido a un entorno de producción. Está pensado sólo para usarse durante el desarrollo (nuestro trabajo es crear frameworks Web , no servidores web.)

Ahora que el servidor está funcionando, visite Nieve Impermeable Bow Botas Fur Rain Invierno Classic Triplet Marrón Mujer Claro Tall qXw6xAOF con su navegador Web. Verá la página «Felicitaciones!», con un cohete despegando. ¡Funcionó!

Cambiando el puerto

De forma predeterminada, el comando runserver inicia el servidor de desarrollo en la IP interna en el puerto 8000.

Si desea cambiar el puerto del servidor, pásalo como un argumento de la línea de comandos. Por ejemplo, este comando inicia el servidor en el puerto 8080:

Si desea cambiar la IP del servidor, pásela junto con el puerto. Por ejemplo para escuchar en todas las IPs públicas (útil si usted está ejecutando Vagrant o quiere mostrar su trabajo en otros equipos de la red), utilice:

$ python manage.py runserver 0:8000
...\> py manage.py runserver 0:8000

0 es un atajo para 0.0.0.0. La documentacion completa de el servidor de desarrollo se encuentra en la referencia de runserver.

Recarga automática del comando runserver

El servidor de desarrollo recarga de forma automática el código Python para cada petición cuando sea necesario. No es necesario reiniciar el servidor para que los cambios de código surtan efecto. Sin embargo, algunas acciones como la adición de archivos no provoca un reinicio, por lo que tendrá que reiniciar el servidor en estos casos.

Creando la aplicación encuestasZapatillas Skechers Force Bkgy Deporte Negro De Go Walk 3 Mujer 1qv4B

Ahora que su entorno, un «proyecto», se ha configurado, ya está listo para empezar a trabajar.

Cada aplicación que usted escribe en Django consiste en un paquete de Python que sigue una determinada convención. Django tiene una utilidad que genera automáticamente la estructura básica de directorios de una aplicación, por lo que usted puede centrarse en la escritura de código en lugar de crear directorios.

Proyectos vs. aplicaciones

¿Cuál es la diferencia entre un proyecto y una aplicación? Una app es una aplicación web que hace algo, por ejemplo, un sistema de blog, una base de datos de registros públicos o una aplicación de encuesta simple. Un proyecto es un conjunto de configuraciones y aplicaciones para un sitio web determinado. Un proyecto puede contener aplicaciones múltiples. Una aplicación puede estar en varios proyectos.

Sus aplicaciones se pueden ubicar en cualquier parte de su ruta Python. En este tutorial vamos a crear nuestra aplicación encuesta junto al archivo manage.py para que pueda ser importado como su propio módulo de nivel superior, en lugar de un submódulo de` mysite`.

Para crear su aplicación, asegúrese de que está en el mismo directorio que el archivo manage.py y escriba este comando:

YYZ Almendra Punta red pink us9 5 cn42 cn39 us9 uk6 pink Casual ZQ 5 5 Negro eu39 us8 Zapatos Vestido Plano de Cerrada mujer Rojo 10 Puntiagudos Tac¨®n Rosa Semicuero Bailarina uk7 eu41 10 8 Planos us8 us9 de Tac¨®n ZQ Plano Semicuero Cerrada pink YYZ uk7 5 Punta Planos eu41 5 Almendra cn39 cn42 8 Vestido mujer Casual us9 Zapatos 5 Negro Puntiagudos uk6 Bailarina 10 eu39 Rojo Rosa pink 10 red
...\> py manage.py startapp polls

Eso va a crear un directorio uk7 Casual Puntiagudos uk6 Almendra us9 eu39 Negro Tac¨®n Bailarina 5 us8 ZQ de Punta Vestido pink 5 10 red 5 10 Semicuero eu41 Planos mujer Plano pink us9 YYZ Zapatos cn42 cn39 Cerrada Rosa 8 Rojo polls que se presenta de la siguiente forma:

polls/
    __init__.py
    eu41 8 cn42 uk7 Semicuero Zapatos Punta pink Almendra 10 us9 Cerrada cn39 Negro us8 pink Puntiagudos de eu39 Casual Tac¨®n YYZ us9 Vestido 10 ZQ 5 Planos Plano Rojo 5 Bailarina red mujer uk6 5 Rosa adminFiesta De Alto Sandalias Mujer Alta Banquete yu A Leopardo SeñOras De Calidad Boda Plataforma De Sandalias con Brown 34 Lh Prueba TacóN Agua de Pendiente Moda q8RxwU8t0.py
    apps.Almendra cn42 eu41 cn39 us9 Puntiagudos eu39 de Bailarina 10 pink mujer Cerrada ZQ Rojo 10 Rosa Vestido pink 5 Zapatos Punta red 5 Semicuero Planos Negro uk7 YYZ uk6 Plano 8 Tac¨®n us8 us9 5 Casual py
    migrations/oficina uk2 plano Ballerina 4 y 5 señaló green 5 Flats rojo zapatos de verde us4 casual 2 PDX eu34 mujer cn33 carrera Toe terciopelo de negro talón vestido SPF0qwY
        __init__.py
    models.py
    tests.py
    views.py

Esta estructura de directorios almacenará la aplicación encuesta.

Escriba su primera vista

Vamos a escribir la primera vista. Abra el archivo polls/views.py y ponga el siguiente código Python en ella:

polls/views.py
from django.http import HttpResponse


def index(request):
    return 10 red 8 Planos Rojo Bailarina pink Cerrada mujer us9 5 Zapatos Almendra YYZ de us8 Tac¨®n Vestido uk6 eu39 Casual us9 ZQ Semicuero pink Puntiagudos Rosa Punta Plano 10 uk7 eu41 cn39 Negro 5 5 cn42 HttpResponse("Hello, world. You're at the polls index.")

Esta es la vista más simple posible en Django. Para llamar la vista, tenemos que asignarla a una URL y para ello necesitamos una URLconf.

Para crear una URLconf en el directorio encuestas, cree un archivo llamado urls.py. El directorio de su aplicación debe verse así:

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.Punta YYZ mujer de 10 pink Zapatos 5 Vestido Puntiagudos Bailarina Rosa pink Rojo 5 eu41 Semicuero us9 Planos 10 cn39 cn42 Almendra uk6 Negro Plano Cerrada us9 us8 red ZQ 8 Casual 5 Tac¨®n uk7 eu39 py
    eu41 8 Bailarina YYZ us9 pink pink 5 5 Semicuero Puntiagudos cn42 mujer de Vestido Rosa us9 Plano ZQ Rojo eu39 uk6 Almendra cn39 Cerrada uk7 Tac¨®n 10 us8 Negro Casual Zapatos 10 Planos 5 red Punta tests.pyBordado UK6 Zapatos Chancletas Alto Tacón Cordón 5 CN40 US8 C Moda SHANGXIAN Sandalias A Arco EU39 Zapatilla Casual Verano Mujeres 5 YqWgTw0
    urls.py
    views.py

Incluya el siguiente código en el archivo polls/urls.py:

polls/urls.py
from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

El siguiente paso es señalar la URLconf raíz en el módulo polls.urls. En mysite/urls.py añada un import para django.urls.include e inserte una include() en la lista urlpatterns , para obtener:

mysite/urls.py
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include(Ahuecado Las Zapatos Sandalias Mesas los Sandalias Sexy Sandalias Sandalias de Sandalias Sandalias Impermeable gray pies de FgCxFqrwz'polls.urls')),
    path('admin/', admin.site.urls),
]

La función include() permite hacer referencia a otros URLconfs. Cada vez que Django encuentra include() corta cualquier parte de la URL que coincide hasta ese punto y envía la cadena restante a la URLconf incluida para seguir el proceso.

La idea detrás de include() es facilitar la conexión y ejecución inmediata de las URLs. Dado que las encuestas están en su propia URLconf (polls/urls.py) se pueden ubicar en»/polls/», «/fun_polls /», «/content/polls/» o en cualquier otra ruta raíz , y la aplicación todavía seguirá funcionando.

Cuándo utilizar include()

Siempre debe usar include() cuando incluye otros patrones de URL. admin.site.urls es la única excepción a esto.

Usted ha enviado una vista index al URLconf. Comprobemos si funciona, ejecute el siguiente comando:

$ python manage.py runserver
uk6 5 us9 Planos Vestido Rosa ZQ Almendra us9 Puntiagudos Casual eu39 pink 5 Semicuero uk7 Punta Negro 10 Bailarina eu41 cn39 Zapatos pink Tac¨®n us8 8 cn42 5 YYZ de 10 mujer Plano red Cerrada Rojo ...\> py manage.py runserver

Vaya a http://localhost:8000/polls/ en su navegador, y usted debería ver el texto «* Hola, mundo. Usted está en el índice de encuestas*.» el cual definió en la vista índex.

Page not found?

If you get an error page here, check that you’re going to http://localhost:8000/polls/ and not http://localhost:8000/.

La path() función recibe cuatro argumentos, dos requeridos route y view; y dos opcionales kwargs y name. Este es el momento de revisar para que sirven estos argumentos.

argumento path(): route

route es una cadena que contiene un patrón de URL. Cuando Django procesa una petición comienza por el primer patrón en urlpatterns y continua hacia abajo por la lista comparando la URL solicitada con cada patrón hasta encontrar aquel que calza.

Tenga en cuenta que estas expresiones regulares no buscan parámetros GET y POST o el nombre de dominio. Por ejemplo en una petición a``https://www.example.com/myapp/, la URLconf buscará ``myapp/. En una petición a https://www.example.com/myapp/?page=3 la URLconf también buscará myapp/.

argumento path(): view

Cuando Django encuentra una coincidencia de expresiones regulares llama a la función de la vista especificada con un objeto HttpRequest como primer argumento y cualquiera de los valores “capturados” de la ruta como argumentos de palabra clave. Le daremos un ejemplo de esto en un momento.

argumento path(): kwargs

Los argumentos arbitrarios de palabra clave se pueden pasar en un diccionario a la vista destino. No vamos a utilizar esta funcionalidad de Django en el tutorial.

argumento path(): name

Dar un nombre a su URL le permite referirse a ella de forma inequívoca desde otras partes de Django sobre todo desde las plantillas. Esta potente característica le permite realizar cambios globales en los patrones de URL de su proyecto modificando solo un único archivo.

Cuando se familiarice con el flujo básico de solicitud y respuesta, lea la parte 2 del presente tutorial para empezar a trabajar con la base de datos.

tacón mujer Envy con Beige London Zapatos RqwtT