Partilhar via


Modelos de projeto de aplicação web Python

Python no Visual Studio suporta o desenvolvimento de projetos da Web em estruturas Bottle, Flask e Django através de modelos de projeto e um lançador de depuração que pode ser configurado para lidar com várias estruturas. Esses modelos incluem um arquivo requirements.txt para declarar as dependências necessárias. Quando você cria um projeto a partir de um desses modelos, o Visual Studio solicita que você instale os pacotes dependentes, conforme descrito em Requisitos de instalação mais adiante neste artigo.

Você também pode usar o modelo genérico Web Project para outras estruturas, como Pyramid. Nesse caso, nenhum framework é instalado 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 Python - separador Pacote.

Opções de modelo de projeto

Você cria 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 da Web Python. Insira os termos-chave na caixa Pesquisar ou use os menus suspensos do filtro para selecionar Python como a linguagem e Web como o tipo de projeto.

Captura de tela que mostra a caixa de diálogo Criar um novo projeto com os modelos filtrados para mostrar opções para aplicativos Web Python no Visual Studio.

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

O modelo genérico de projeto da Web fornece um projeto vazio do Visual Studio sem código e não faz nenhuma suposição além de ser um projeto Python. Os outros modelos são baseados nas estruturas da Web Bottle, Flask ou Django e agrupados em três categorias, conforme descrito nas seções a seguir. Os aplicativos criados por qualquer 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 (python.org) necessário para uso com servidores Web de produção.

Grupo em branco

Todos os modelos de projeto Web do framework Blank< criam um projeto com código padrão mínimo e as dependências necessárias declaradas num ficheiro requirements.txt.

Template Description
Projeto Web Garrafa em Branco Gera um aplicativo mínimo no arquivo app.py com uma página inicial para a / localização e uma página /hello/<name> que ecoa o <name> valor usando um modelo curto de página embutida.
Projeto Web Django em branco Gera um projeto Django com a estrutura principal do site Django, mas sem aplicativos Django. Para obter mais informações, consulte Modelos do Django e Aprenda a Etapa 1 do Django.
Projeto Web Blank Flask Gera uma aplicação mínima com uma única página "Hello World!" para a localização /. Este aplicativo é semelhante ao resultado de seguir as etapas detalhadas em Guia de início rápido: use o Visual Studio para criar seu primeiro aplicativo Web Python. Para obter mais informações, consulte Learn Flask Step 1.

Grupo Web

Todos os <modelos do Framework> Web Project criam um aplicativo Web inicial com um design idêntico, independentemente da estrutura escolhida. O aplicativo tem as páginas Início, Sobre e Contato, juntamente com uma barra de menu de navegação e design responsivo que usa o Bootstrap. Cada aplicativo é configurado adequadamente para servir arquivos estáticos (CSS, JavaScript e fontes) e usa um mecanismo de modelo de página apropriado para a estrutura.

Template Description
Projeto Web Bottle Gera um aplicativo cujos arquivos estáticos estão contidos na pasta estática e são manipulados por meio de 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 Django Gera um projeto Django e um aplicativo Django com três páginas, suporte à autenticação e um banco de dados SQLite (mas sem modelos de dados). Para obter mais informações, consulte Modelos do Django e Aprenda a Etapa 4 do Django.
Projeto Web Flask Gera um aplicativo cujos arquivos estáticos estão contidos na pasta estática . 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 código de inicialização.

Requisitos de instalação

Quando você cria um projeto a partir de um modelo específico da estrutura, o Visual Studio fornece uma caixa de diálogo para ajudá-lo a instalar os pacotes necessários usando pip. Também recomendamos o uso de um ambiente virtual para projetos da Web para garantir que as dependências corretas sejam incluídas quando você publicar seu site:

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

Se você usar o controle do código-fonte, normalmente omitirá a pasta do ambiente virtual porque esse ambiente pode ser recriado usando apenas o arquivo requirements.txt . A melhor maneira de excluir a pasta é primeiro selecionar a opção Eu mesmo vou instalá-los e, em seguida, desativar a confirmação automática antes de criar o ambiente virtual. Para obter mais informações, consulte Examinar controles Git no Tutorial do Learn Django e no Tutorial do Learn Flask.

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

Opções de depuração

Quando você abre um projeto da 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, selecione Propriedades. Na página Propriedades , selecione a guia Depurar .

Captura de tela que mostra as propriedades do inicializador da Web para o modelo da Web genérico no Visual Studio.

Existem 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 intérprete e Argumentos do intérprete são as mesmas da depuração normal.
  • O URL de inicialização especifica o URL que é aberto no navegador. O local 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 que o utilizador substitua o valor padrão da variável de ambiente SERVER_PORT, que é usada pelos modelos para configurar em 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 separados por novas linhas <NAME>=<VALUE>.

As propriedades nos grupos Run Server Command e Debug Server Command 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 comando pode ser um script 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 de seleção indica qual tipo é indicado.
  • A lista de Argumentos é passada na linha de comando seguindo o comando.
  • Novamente, a lista Ambiente define variáveis a serem definidas após todas as propriedades que podem modificar o ambiente, como o número da porta e os caminhos de pesquisa. Esses valores de variáveis podem substituir outros valores de propriedade.

Qualquer propriedade de projeto ou variável de ambiente pode ser especificada com sintaxe 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 que são definidas pelas propriedades URL de Inicialização e Número da Porta , automaticamente ou pela propriedade Environment .

Observação

Os valores no comando Run Server são usados com o comando Debug>Start Server ou o atalho de teclado Ctrl+F5. Os valores no grupo Debug Server Command são usados com o comando Debug>Start Debug Server ou F5.

Configuração da garrafa de amostra

O modelo Bottle Web Project inclui código clichê que faz a configuração necessária. No entanto, uma aplicação Bottle importada pode não incluir este código, caso em que as seguintes configurações iniciam a aplicação usando o módulo instalado bottle.

  • Execute o grupo de comandos do servidor :

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

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

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

Configuração da pirâmide de amostra

Atualmente, as aplicações Pyramid são melhor criadas usando a ferramenta de linha de comandos pcreate. Depois de criar o aplicativo, ele pode ser importado usando o modelo de código Python existente . Após a conclusão da importação, selecione a personalização do Projeto Web Genérico para configurar as opções. Essas configurações pressupõem que o Pyramid esteja instalado em um ambiente virtual no ..\env local.

  • Executar grupo:

    • Número da porta: 6543 (ou o que estiver configurado nos arquivos .ini )
  • Execute o grupo de comandos do servidor :

    • Comando: ..\env\scripts\pserve-script.py (script)
    • Argumentos: Production.ini
  • Grupo de comandos do Debug Server :

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

Sugestão

Você provavelmente precisa configurar a propriedade Working Directory do seu projeto porque os aplicativos Pyramid geralmente são uma pasta abaixo da raiz do projeto.

Outras configurações

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