Modelos de projeto de aplicativo Web Python

O Python no Visual Studio é compatível com o desenvolvimento de projetos da Web nas estruturas Bottle, Flask e Django por meio de modelos de projeto e um inicializador de depuração que pode ser configurado para manipular várias estruturas. Esses modelos incluem um arquivo requirements.txt para declarar as dependências necessárias. Ao criar um projeto de um desses modelos, o Visual Studio solicita que você instale os pacotes dependentes, conforme descrito em Requisitos de instalação posteriormente neste artigo.

Você também pode usar o modelo genérico Projeto Web para outras estruturas, como Pyramid. Nesse caso, nenhuma estrutura é instalada com o modelo. Em vez disso, você instala os pacotes necessários no ambiente que está usando para o projeto. Para obter mais informações, consulte Janela de ambientes do Python – guia Pacote.

Opções de modelo de projeto

Crie um projeto a partir de um modelo selecionando Arquivo>Novo>Projeto no menu da barra de ferramentas. Na caixa de diálogo Criar um novo projeto, você pode filtrar a lista de modelos para ver as opções disponíveis para projetos Web em Python. Insira os termos-chave na caixa Pesquisar ou use os menus suspensos de filtro para selecionar Python como a linguagem e Web como o tipo de projeto.

Captura de tela mostrando a caixa de diálogo Criar um projeto com os modelos filtrados para exibir opções de aplicativos Web em Python no Visual Studio.

Depois de selecionar um modelo, forneça um nome para o projeto e para a solução e defina opções para o diretório da solução e para o repositório Git.

O modelo genérico de Projeto Web fornece apenas um projeto vazio do Visual Studio sem nenhum código e nenhuma suposição diferente além de ser um projeto do Python. Os outros modelos se baseiam nas estruturas da Web Bottle, Flask ou Django e são agrupados em três categorias, conforme descrito nas seções a seguir. Os aplicativos criados por um desses modelos contêm código suficiente para executar e depurar o aplicativo localmente. Cada modelo também fornece o objeto de aplicativo WSGI necessário (python.org) para uso com servidores da Web de produção.

Grupo em branco

Todos os modelos de Projeto Web Blank <framework>criam um projeto com código boilerplate mais ou menos mínimo e as dependências necessárias declaradas em um arquivo requirements.txt.

Modelo Descrição
Projeto Web em Branco do Bottle Gera um aplicativo mínimo no arquivo app.py com uma home page do local / e uma página /hello/<name> que ecoa o valor <name> usando um modelo de página embutido muito curto.
Projeto Web em Branco do Django Gera um projeto Django com a estrutura do site principal do Django, mas não aplicativos Django. Para obter mais informações, confira Modelos do Django e Etapa 1 do tutorial – Conheça o Django.
Projeto Web em Branco do Flask Gera um aplicativo mínimo com um único "Olá, Mundo!" para o local /. Este aplicativo é semelhante ao resultado das seguintes etapas detalhadas em Início rápido: use o Visual Studio para criar seu primeiro aplicativo Web Python. Para obter mais informações, consulte Etapa 1 do tutorial – Conheça o Flask.

Grupo da Web

Todos os modelos de Projeto Web <Framework>criam um aplicativo Web inicial com um design idêntico, seja qual for a estrutura escolhida. O aplicativo tem as páginas Início, Sobre e Contato, juntamente com uma barra de menus de navegação e um design que usa a Inicialização. Cada aplicativo é configurado adequadamente para fornecer arquivos estáticos (CSS, JavaScript e fontes) e usa um mecanismo de modelo de página adequado para a estrutura.

Modelo Descrição
Projeto Web do Bottle Gera um aplicativo cujos arquivos estáticos estão contidos na pasta static e são manipulados por meio do código no arquivo app.py. O roteamento para as páginas individuais está contido no arquivo routes.py . A pasta views contém os modelos de página.
Projeto Web do Django Gera um projeto e um aplicativo do Django com três páginas, suporte de autenticação e um banco de dados SQLite (mas nenhum modelo de dados). Para obter mais informações, confira Modelos do Django e Etapa 4 do tutorial – Conheça o Django.
Projeto Web do Flask Gera um aplicativo cujos arquivos estáticos estão contidos na pasta static. O código no arquivo views.py manipula o roteamento, com modelos de página que usam o mecanismo Jinja contido na pasta templates. O arquivo runserver.py fornece o código de inicialização.

Requisitos de instalação

Ao criar um projeto com base em um modelo específico à estrutura, o Visual Studio exibe uma caixa de diálogo para ajudar você a instalar os pacotes necessários usando o PIP. Também recomendamos o uso de um ambiente virtual para projetos Web para garantir que as dependências corretas sejam incluídas durante a publicação do site:

Captura de tela mostrando a caixa de diálogo para instalar pacotes em um modelo de projeto no Visual Studio.

Se for usar o controle do código-fonte, normalmente, você omitirá a pasta de ambiente virtual, pois esse ambiente poderá ser recriado usando somente o arquivo requirements.txt. A melhor maneira de excluir a pasta é primeiro selecionar a opção Eu os instalarei sozinho e desabilitar a confirmação automática antes de criar o ambiente virtual. Para obter mais informações, confira Examinar os controles do Git no Tutorial Aprenda Django e no Tutorial Aprenda Flask.

Ao implantar o Serviço de Aplicativo do Microsoft Azure, selecione uma versão do Python como uma extensão de site e instalar os pacotes manualmente. Além disso, como o Serviço de Aplicativo do Azure não instala pacotes automaticamente de um arquivo requirements.txt quando implantado por meio do Visual Studio, siga os detalhes de configuração em aka.ms/PythonOnAppService.

Opções de depuração

Ao abrir um projeto Web para depuração, o Visual Studio inicia um servidor Web local em uma porta aleatória e abre seu navegador padrão para esse endereço e porta. Para especificar mais opções, clique com o botão direito do mouse no projeto no Gerenciador de Soluções e selecione Propriedades. Na página Propriedades, selecione a guia Depurar.

Captura de tela mostrando as propriedades do launcher da Web para o modelo da Web genérico no Visual Studio.

Há três grupos de opções de configuração comuns para depurar o projeto. O grupo Executar inclui as seguintes propriedades:

  • As opções Caminhos de Pesquisa, Argumentos de Script, Caminho do Interpretador e Argumentos do Interpretador são as mesmas da depuração normal.
  • O URL de Inicialização especifica a URL que é aberta no navegador. A localização padrão é localhost.
  • O Número da Porta identifica a porta a ser usada se nenhuma for especificada na URL (o Visual Studio seleciona uma automaticamente por padrão). Essa configuração permite substituir o valor padrão da variável de ambiente SERVER_PORT, que é usada pelos modelos para configurar qual porta o servidor de depuração local escuta.
  • A lista Ambiente define variáveis a serem definidas no processo gerado. O formato é uma lista de pares <NAME>=<VALUE> separada por nova linha.

As propriedades nos grupos Executar Comando do Servidor e Depurar Comando do Servidor determinam como o servidor Web é iniciado. Como muitas estruturas exigem o uso de um script fora do projeto atual, o script pode ser configurado aqui e o nome do módulo de inicialização pode ser passado como um parâmetro.

  • O Command pode ser um script do Python (arquivo *.py), um nome de módulo (como em python.exe -m module_name) ou uma única linha de código (como em python.exe -c "code"). O valor na caixa suspensa indica qual tipo é pretendido.
  • A lista de Argumentos é passada na linha de comando após o comando.
  • Novamente, a lista Ambiente define variáveis a serem estabelecidas após todas as propriedades e que podem modificar o ambiente, como o número da porta e os caminhos de pesquisa. Esses valores de variável podem substituir outros valores de propriedade.

Qualquer propriedade de projeto ou variável de ambiente pode ser especificada com a sintaxe do MSBuild, como $(StartupFile) --port $(SERVER_PORT). $(StartupFile) é o caminho relativo para o arquivo de inicialização e {StartupModule} é o nome importável do arquivo de inicialização. $(SERVER_HOST) e $(SERVER_PORT) são variáveis de ambiente normais definidas pelas propriedades URL de Inicialização e Número da Porta, automaticamente ou pela propriedade Ambiente.

Observação

Os valores no Executar Comando do Servidor são usados com o comando Debug>Start Server ou o atalho de teclado Ctrl+F5. Os valores no grupo Depurar Comando do Servidor são usados com o comando Debug>Start Debug Server ou F5.

Configuração do Bottle de exemplo

O modelo de Projeto Web Bottle inclui um código de texto clichê que faz a configuração necessária. Um aplicativo importado do Bottle pode não incluir esse código; no entanto, nesse caso, as seguintes configurações iniciam o aplicativo usando o módulo bottle instalado:

  • Grupo Executar Comando do Servidor:

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

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

A opção --reload não é recomendada ao usar o Visual Studio para depuração.

Configuração de exemplo do Pyramid

Atualmente, a melhor forma de criar aplicativos do Pyramid é usando a ferramenta de linha de comando pcreate. Depois de criar o aplicativo, ele poderá ser importado usando o modelo Com base em um código existente do Python. Depois de terminar a importação, selecione a personalização Projeto Web Genérico para configurar as opções. Essas configurações presumem que o Pyramid está instalado em um ambiente virtual no local ..\env.

  • Grupo Run:

    • Número da Porta: 6543 (ou o que estiver configurado nos arquivos .ini)
  • Grupo Executar Comando do Servidor:

    • Comando: ..\env\scripts\pserve-script.py (script)
    • Argumentos: Production.ini
  • Grupo Depurar Comando do Servidor:

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

Dica

Provavelmente, será necessário configurar a propriedade Diretório de Trabalho do projeto, pois os aplicativos do Pyramid estão normalmente uma pasta abaixo da raiz do projeto.

Outras configurações

Se você tiver configurações para outra estrutura que gostaria de compartilhar ou se gostaria de solicitar configurações para outra estrutura, abra um problema no GitHub.