Plantillas de proyecto de aplicación web para Python

Python en Visual Studio admite el desarrollo de proyectos web en los marcos Bottle, Flask y Django mediante plantillas de proyecto y un iniciador de depuración que puede configurarse para controlar varios marcos. Estas plantillas incluyen un archivo requirements.txt para declarar las dependencias necesarias. Al crear un proyecto a partir de alguna de estas plantillas, Visual Studio le pedirá que instale los paquetes dependientes, tal y como se describe en Requisitos de instalación más adelante en este artículo.

También puede usar la plantilla Proyecto web genérica para otras plataformas como Pyramid. En este caso, no se instala ningún marco con la plantilla. En su lugar, instale los paquetes necesarios en el entorno que va a usar para el proyecto. Para obtener más información, consulte Ventana Entornos de Python - Pestaña Paquetes.

Opciones de plantilla de proyecto

Para crear un proyecto a partir de una plantilla, seleccione Archivo>Nuevo>Proyecto en el menú de la barra de herramientas. En el cuadro de diálogo Crear un nuevo proyecto, puede filtrar la lista de plantillas para ver las opciones disponibles para proyectos web de Python. Escriba los términos clave en el cuadro Buscar o use los menús desplegables de filtro para seleccionar Python como lenguaje y Web como tipo de proyecto.

Captura de pantalla donde se ve el cuadro de diálogo Crear un nuevo proyecto con las plantillas filtradas para que aparezcan las opciones de las aplicaciones web de Python en Visual Studio.

Después de seleccionar una plantilla, asigne un nombre al proyecto y a la solución y establezca las opciones para el directorio de la solución y el repositorio de Git.

La plantilla genérica Proyecto web solo proporciona un proyecto vacío de Visual Studio sin código y no hace ninguna suposición aparte de ser un proyecto Python. Las demás plantillas se basan en los marcos de trabajo web de Bottle, Flask o Django y se agrupan en tres categorías, como se describe en las secciones siguientes. Las aplicaciones creadas con cualquiera de estas plantillas contienen código suficiente para ejecutar y depurar la aplicación en local. Cada plantilla proporciona el objeto de aplicación WSGI necesario (python.org) para el uso con servidores web de producción.

Grupo en blanco

Todas las plantillas Proyecto web de <marco> en blanco crean un proyecto con más o menos el código reutilizable mínimo y las dependencias necesarias declaradas en un archivo requirements.txt.

Plantilla Description
Proyecto web de Bottle en blanco Genera una aplicación mínima en el archivo app.py con una página principal de ubicación / y una página /hello/<name> que devuelve el valor <name> mediante una plantilla de página insertada muy breve.
Proyecto web de Django en blanco Genera un proyecto de Django con la estructura del sitio principal de Django pero sin ninguna aplicación de Django. Para obtener más información, vea Plantilla de proyecto web de Django y Tutorial: Introducción al marco web de Django en Visual Studio.
Proyecto web de Flask en blanco Genera un aplicación mínima con una única página "¡Hola mundo!" para la ubicación /. Esta aplicación es similar al resultado obtenido tras seguir los pasos detallados descritos en Inicio rápido: usar Visual Studio para crear su primera aplicación web Python. Para obtener más información, consulte Información sobre Flask, Paso 1.

Grupo web

Todas las plantillas Proyecto web de <marco> crean una aplicación web de inicio con un diseño idéntico, con independencia del marco elegido. La aplicación tiene páginas de Inicio, Acerca de y Contacto, junto con un menú de navegación y un diseño adaptable que usa Bootstrap. Cada aplicación está correctamente configurada para archivos estáticos (CSS, JavaScript y fuentes) y usa un mecanismo de plantilla de página adecuado para el marco.

Plantilla Description
Proyecto web de Bottle Genera una aplicación cuyos archivos estáticos se encuentran en la carpeta static y se controlan mediante código en el archivo app.py. El enrutamiento de las páginas individuales está incluido en el archivo routes.py. La carpeta views contiene las plantillas de página.
Proyecto web de Django Genera un proyecto de Django y una aplicación de Django con tres páginas, compatibilidad con la autenticación y una base de datos de SQLite (pero no hay modelos de datos). Para obtener más información, vea Plantilla de proyecto web de Django y Paso 4. Usar la plantilla completa de Proyecto web de Django.
Proyecto web de Flask Genera una aplicación cuyos archivos estáticos se encuentran en la carpeta static. El código del archivo views.py controla el enrutamiento y las plantillas de página que usan el motor de Jinja incluido en la carpeta templates. El archivo runserver.py proporciona el código de inicio.

Requisitos de instalación

Al crear un proyecto a partir de una plantilla específica del marco de trabajo, Visual Studio abre un cuadro de diálogo que le ayudará a instalar los paquetes necesarios mediante pip. También se recomienda usar un entorno virtual para proyectos web para garantizar que se incluyan las dependencias correctas cuando publique el sitio web:

Captura de pantalla donde aparece el cuadro de diálogo para instalar paquetes para una plantilla de proyecto en Visual Studio.

Si se usa un control de código fuente, normalmente se omite la carpeta del entorno virtual porque dicho entorno solo puede volver a crearse con el archivo requirements.txt. La mejor forma de excluir la carpeta es seleccionar primero la opción I will install them myself (Haré la instalación por mi cuenta) en el aviso mostrado anteriormente y luego deshabilitar la confirmación automática antes de crear el entorno virtual. Para obtener más información, consulte Examen de los controles de Git en el Tutorial de aprendizaje de Django y en el Tutorial de aprendizaje de Flask.

Cuando implemente Microsoft Azure App Service, seleccione una versión de Python como una extensión del sitio e instale los paquetes manualmente. Además, dado que Azure App Service no instala automáticamente los paquetes de un archivo requirements.txt cuando se implementa desde Visual Studio, siga los detalles de configuración de aka.ms/PythonOnAppService.

Opciones de depuración

Cuando se abre un proyecto web para la depuración, Visual Studio inicia el servidor web local en un puerto aleatorio y abre el explorador predeterminado en esa dirección y puerto. Para especificar más opciones, haga clic con el botón secundario en el proyecto en el Explorador de soluciones y seleccione Propiedades. En la página Propiedades, seleccione la pestaña Depurar.

Captura de pantalla donde aparecen las propiedades del iniciador web para la plantilla web genérica en Visual Studio.

Hay tres grupos de opciones de configuración comunes para depurar el proyecto. El grupo Ejecutar incluye las siguientes propiedades:

  • Las opciones Rutas de acceso de búsqueda, Argumentos de script, Ruta de acceso del intérprete y Argumentos del intérprete son las mismas que para la depuración normal.
  • La URL de inicio especifica la dirección URL que se abre en el explorador. La ubicación predeterminada es localhost.
  • El Número de puerto identifica el puerto que se utilizará si no se especifica ninguno en la dirección URL (Visual Studio selecciona uno automáticamente de forma predeterminada). Esta opción le permite anular el valor predeterminado de la variable de entorno SERVER_PORT, usado por las plantillas para configurar el puerto en el que escucha el servidor de depuración local.
  • La lista Entorno define las variables que se van a establecer en el proceso generado. El formato es una lista de pares separados por nuevas líneas <NAME>=<VALUE>.

Las propiedades de los grupos Ejecutar comando de servidor y Depurar comando de servidor determinan cómo se inicia el servidor web. Dado que muchos marcos requieren el uso de un script fuera del proyecto actual, se puede configurar aquí el script y el nombre del módulo de inicio se puede pasar como parámetro.

  • Comando: puede ser un script de Python (archivo *.py), un nombre de módulo (como en python.exe -m module_name) o una sola línea de código (como en python.exe -c "code"). El valor del cuadro desplegable indica qué tipo está previsto.
  • La lista de Argumentos se pasa en la línea de comandos después del comando.
  • De nuevo, en la lista Entorno se definen variables para establecer después de todas las propiedades que podrían modificar el entorno, como el número de puerto y las rutas de acceso de búsqueda. Estos valores de variable pueden sobrescribir otros valores de propiedad.

Cualquier propiedad de proyecto o variable de entorno se puede especificar con la sintaxis de MSBuild, por ejemplo: $(StartupFile) --port $(SERVER_PORT). $(StartupFile) es la ruta de acceso relativa al archivo de inicio y {StartupModule} es el nombre del archivo de inicio que se puede importar. $(SERVER_HOST) y $(SERVER_PORT) son variables de entorno normales que se establecen mediante las propiedades URL de inicio y Número de puerto, automáticamente o mediante la propiedad Entorno.

Nota:

Los valores de Run Server Command se usan con el comando Debug>Start Server o el método abreviado del teclado Ctrl+F5. Los valores del grupo Debug Server Command se usan con el comando Debug>Start Debug Server o F5.

Configuración de Bottle de ejemplo

La plantilla Proyecto web de Bottle incluye código reutilizable que realiza la configuración necesaria. Sin embargo, una aplicación de Bottle importada no puede incluir este código, en cuyo caso la siguiente configuración inicia la aplicación mediante el módulo bottle instalado:

  • Grupo Run Server Command (Comando de servidor de ejecución):

    • Comando: bottle (módulo)
    • Argumentos: --bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app
  • Grupo Debug Server Command (Comando de servidor de depuración):

    • Comando: bottle (módulo)
    • Argumentos--debug --bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app

La opción --reload no se recomienda cuando se usa Visual Studio para la depuración.

Configuración de Pyramid de ejemplo

Actualmente, las aplicaciones de Pyramid se crean mejor con la herramienta de la línea de comandos pcreate. Una vez creada una aplicación, se puede importar con la plantilla Desde código de Python existente. Cuando la importación se haya completado, seleccione la personalización Generic Web Project (Proyecto web genérico) para configurar las opciones. Esta configuración presupone que Pyramid se ha instalado en un entorno virtual en la ubicación ..\env.

  • Grupo Run:

    • Número de puerto: 6543 (o el que se haya configurado en los archivos .ini)
  • Grupo Run Server Command (Comando de servidor de ejecución):

    • Comando: ..\env\scripts\pserve-script.py (script)
    • Argumentos: Production.ini
  • Grupo Debug Server Command (Comando de servidor de depuración):

    • Comando: ..\env\scripts\pserve-script.py (script)
    • Argumentos: Development.ini

Sugerencia

Es probable que tenga que configurar la propiedad Directorio de trabajo del proyecto porque las aplicaciones de Pyramid suelen encontrarse en una carpeta por debajo de la raíz del proyecto.

Otras configuraciones

Si tiene una configuración para otro marco que quiere compartir, o si quiere solicitar la configuración para otro marco, abra un problema en GitHub.