One place for hosting & domains

      Ambiente

      Como ler e definir variáveis de ambiente e de shell no Linux


      Introdução

      Ao interagir com seu servidor através de uma sessão do shell, há muitas informações compiladas pelo seu shell para determinar o seu comportamento e acesso a recursos. Algumas dessas configurações estão contidas nas definições de configuração enquanto outras são determinadas pela entrada do usuário.

      Uma das maneiras pela qual o shell mantém o controle de todas essas configurações e detalhes é através de uma área mantida por ele chamada ambiente. O ambiente é uma área que o shell compila toda vez que inicia uma sessão que contém variáveis que definem propriedades do sistema.

      Neste guia, vamos discutir como interagir com o ambiente e ler ou definir variáveis de ambiente e de shell interativamente e por arquivos de configuração.

      Como o ambiente e variáveis de ambiente funcionam

      Sempre que uma sessão do shell é gerada, um processo ocorre para coletar e compilar informações que devem estar disponíveis ao processo shell e seus processos filhos. Ele obtém os dados para essas configurações de uma variedade de arquivos e configurações distintas no sistema.

      O ambiente fornece um meio pelo qual o processo shell pode obter ou definir configurações e, por sua vez, passá-las aos seus processos filhos.

      O ambiente é implementado como strings que representam pares de chave-valor. Se múltiplos valores forem passados, eles são normalmente separados por caracteres dois-pontos (:). Cada par será geralmente parecido com isto:

      KEY=value1:value2:...
      

      Se o valor contiver um espaço em branco significativo, as aspas são usadas:

      KEY="value with spaces"
      

      As chaves nesses cenários são variáveis. Elas podem ser de dois tipos, variáveis de ambiente ou variáveis de shell.

      As variáveis de ambiente são variáveis definidas para a sessão atual do shell e são herdades por qualquer shell ou processo filho. As variáveis de ambiente são usadas para passar informações para processos gerados a partir do shell.

      As variáveis de shell são variáveis contidas exclusivamente no shell no qual foram configuradas ou definidas. Geralmente, elas são usadas para manter o controle de dados efêmeros, como o diretório de trabalho atual.

      Por convenção, esses tipos de variáveis são geralmente definidos usando somente letras maiúsculas. Isso ajuda os usuários a distinguir as variáveis de ambiente em outros contextos.

      Imprimindo variáveis de ambiente e de shell

      Cada sessão do shell mantém o controle de suas variáveis de ambiente e de shell. Podemos acessá-las de algumas maneiras diferentes.

      É possível ver uma lista de todas as nossas variáveis de ambiente usando os comandos env ou printenv. Em seu estado padrão, elas devem funcionar exatamente da mesma maneira:

      Output

      SHELL=/bin/bash TERM=xterm USER=demouser LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca:... MAIL=/var/mail/demouser PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games PWD=/home/demouser LANG=en_US.UTF-8 SHLVL=1 HOME=/home/demouser LOGNAME=demouser LESSOPEN=| /usr/bin/lesspipe %s LESSCLOSE=/usr/bin/lesspipe %s %s _=/usr/bin/printenv

      Isso é algo bastante típico para o resultado tanto de printenv quanto env. A diferença entre os dois comandos só é aparente em suas funcionalidades mais específicas. Por exemplo, com printenv, é possível solicitar os valores de variáveis individuais:

      Output

      /bin/bash

      Por outro lado, o env lhe permite modificar o ambiente no qual os programas são executados passando um conjunto de definições de variável em um comando, como este:

      • env VAR1="value" command_to_run command_options

      Considerando que, assim como aprendemos acima, os processos filhos normalmente herdam as variáveis de ambiente do processo pai, isso lhe dá a oportunidade de substituir valores ou adicionar variáveis adicionais ao filho.

      Como você pode ver no resultado do nosso comando printenv, há uma quantidade razoável de variáveis de ambiente configuradas em nossos arquivos e processos de sistema sem a nossa intervenção.

      Esses comandos mostram as variáveis de ambiente, mas como vemos as variáveis de shell?

      O comando set pode ser usado para isso. Se digitarmos set sem nenhum parâmetro adicional, iremos receber uma lista de todas as variáveis de shell, variáveis de ambiente, variáveis locais e funções shell:

      Output

      BASH=/bin/bash BASHOPTS=checkwinsize:cmdhist:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=() BASH_CMDS=() . . .

      Normalmente, essa é uma lista enorme. Provavelmente, é desejável canalizá-la em um programa pager para manusear mais facilmente todo o resultado:

      A quantidade de informações adicionais recebidas de volta pode parecer muito grande. Provavelmente, não é necessário conhecer todas as funções bash que estão definidas, por exemplo.

      Podemos limpar o resultado especificando que set deve operar no modo POSIX, que não irá imprimir as funções shell. Podemos executá-lo em um subshell para que ele não altere nosso ambiente atual:

      Isso irá listar todas as variáveis de ambiente e de shell que estão definidas.

      Podemos tentar comparar esse resultado com o resultado dos comandos env ou printenv para tentar obter uma lista com apenas as variáveis de shell, mas isso não será perfeito, devido às diferentes maneiras pelas quais esses comandos geram os resultados:

      • comm -23 <(set -o posix; set | sort) <(env | sort)

      Isso provavelmente ainda irá incluir algumas variáveis de ambiente, pois o comando set exibe valores entre aspas, enquanto o printenv e env não colocam os valores de strings entre aspas.

      Isso deve lhe dar uma boa noção das variáveis de ambiente e de shell que estão definidas em sua sessão.

      Essas variáveis são usadas para todo tipo de coisa. Elas oferecem uma forma alternativa de definir valores persistentes para a sessão entre processos, sem gravar alterações em um arquivo.

      Variáveis de ambiente e de shell comuns

      Algumas variáveis de ambiente e de shell são muito úteis e são referenciadas com bastante frequência. Aqui estão algumas variáveis de ambiente comuns que você deve encontrar:

      • SHELL: descreve o shell que irá interpretar todos os comandos que você digitar. Geralmente, isso será bash por padrão, mas outros valores podem ser definidos caso prefira outras opções.
      • TERM: especifica o tipo de terminal a ser emulado ao executar o shell. Diferentes terminais de hardware podem ser emulados para diferentes requisitos de operação. Normalmente, não será necessário se preocupar com isso.
      • USER: o usuário que está atualmente conectado.
      • PWD: o diretório de trabalho atual.
      • OLDPWD: o diretório de trabalho anterior. Isso é mantido pelo shell para retornar ao seu diretório anterior executando cd -.
      • LS_COLORS: define códigos de cor que são usados para adicionar um resultado de cor opcional ao comando ls. Isso é usado para distinguir diferentes tipos de arquivos e fornecer mais informações ao usuário em um olhar rápido.
      • MAIL: o caminho para a caixa de correio do usuário atual.
      • PATH: uma lista de diretórios que o sistema irá verificar ao procurar por comandos. Quando um usuário digita um comando, o sistema irá verificar diretórios neste pedido para o executável.
      • LANG: a configuração atual de idioma e localização, incluindo a codificação de caracteres.
      • HOME: o diretório base do usuário atual.
      • _: o comando executado anteriormente mais recente.

      Além dessas variáveis de ambiente, algumas variáveis de shell que você verá com frequência são:

      • BASHOPTS: a lista de opções que foram usadas quando o bash foi executado. Isso pode ser útil para descobrir se o ambiente do shell irá operar da maneira que você deseja.
      • BASH_VERSION: a versão do bash sendo executada, de forma legível por humanos.
      • BASH_VERSINFO: a versão do bash, em saída legível por máquina.
      • COLUMNS: o número de colunas de largura que estão sendo usadas para exibir um resultado na tela.
      • DIRSTACK: a pilha de diretórios que estão disponíveis com os comandos pushd e popd.
      • HISTFILESIZE: número de linhas de histórico de comando armazenadas em um arquivo.
      • HISTSIZE: número de linhas de histórico de comando permitidas na memória.
      • HOSTNAME: o nome de host do computador neste momento.
      • IFS: o separador de campo interno para separar entradas na linha de comando. Por padrão, é um espaço.
      • PS1: a de definição de prompt de comando primário. Isso é usado para definir a aparência do seu prompt quando inicia a sessão do shell. O PS2 é usado para declarar prompts secundários para quando um comando ocupa várias linhas.
      • SHELLOPTS: opções de shell que podem ser definidas com a opção set.
      • UID: o UID do usuário atual.

      Definindo variáveis de ambiente e de shell

      Para entender melhor a diferença entre as variáveis de ambiente e de shell, e para apresentar a sintaxe para definir essas variáveis, faremos uma pequena demonstração.

      Criando variáveis de shell

      Vamos começar definindo uma variável de shell dentro de nossa sessão atual. Isso é de fácil execução. Precisamos especificar apenas um nome e um valor. Vamos aderir à convenção de manter todas as letras maiúsculas para o nome da variável e defini-las em uma string simples.

      Aqui, usamos aspas, pois o valor de nossa variável contém um espaço. Além disso, usamos aspas simples, pois o ponto de exclamação é um caractere especial no bash do shell que normalmente expande para o histórico do bash se não forem colocados caracteres de escape ou colocado entre aspas simples.

      Agora, temos uma variável de shell. Essa variável está disponível em nossa sessão atual, mas não será passada para processos filhos.

      Podemos ver isso usando o grep para nossa nova variável dentro do resultado de set:

      Output

      TEST_VAR='Hello World!'

      Podemos verificar se essa não é uma variável de ambiente testando a mesma coisa com o printenv:

      Nenhum resultado deve ser retornado.

      Vamos aproveitar isso como uma oportunidade para demonstrar uma maneira de acessar o valor de qualquer variável de ambiente ou de shell.

      Output

      Hello World!

      Como você pode ver, faça referência ao valor de uma variável executando-a com um sinal de $. O shell recebe isso e entende que deve substituir o valor da variável quando se depara com isso.

      Então, agora, temos uma variável de shell. Ela não deve ser passada para nenhum processo filho. Podemos gerar um novo shell do bash de dentro do atual para demonstrar isso:

      Se digitarmos bash para gerar um shell filho e então tentarmos acessar o conteúdo da variável, nada será retornado. Isso é exatamente o que esperávamos.

      Volte para o nosso shell original digitando exit:

      Criando variáveis de ambiente

      Agora, vamos transformar nossa variável de shell em uma variável de ambiente. Podemos fazer isso exportando a variável. O comando para isso é nomeado apropriadamente:

      Isso irá alterar nossa variável para uma variável de ambiente. Podemos verificar isso olhando nossa listagem de ambiente novamente:

      Output

      TEST_VAR=Hello World!

      Desta vez, nossa variável aparece. Vamos tentar nosso experimento com o nosso shell filho novamente:

      Output

      Hello World!

      Ótimo! Nosso shell filho recebeu a variável definida pelo seu pai. Antes de sairmos deste shell filho, vamos tentar exportar outra variável. Podemos definir variáveis de ambiente em um único passo, desta forma:

      • export NEW_VAR="Testing export"

      Teste se ele foi exportado como uma variável de ambiente:

      Output

      NEW_VAR=Testing export

      Agora, vamos voltar para o nosso shell original:

      Vamos ver se nossa nova variável está disponível:

      Nada é retornado.

      Isso ocorre porque variáveis de ambiente são passadas apenas para processos filhos. Não existe uma maneira integrada de definir variáveis de ambiente do shell pai. Isso é bom na maioria dos casos e impede que os programas afetem o ambiente operacional de onde foram chamados.

      A variável NEW_VAR foi definida como uma variável de ambiente em nosso shell filho. Essa variável estaria disponível para si mesma e qualquer um de seus shells e processos filhos. Quando saímos e voltamos para o nosso shell principal, aquele ambiente foi destruído.

      Rebaixando e removendo variáveis

      Ainda temos nossa variável TEST_VAR definida como uma variável de ambiente. Podemos revertê-la para uma variável de shell digitando:

      Ela não é mais uma variável de ambiente:

      No entanto, ela ainda é uma variável de shell:

      Output

      TEST_VAR='Hello World!'

      Se quisermos remover completamente uma variável, seja ela de ambiente ou de shell, podemos fazê-lo com o comando unset:

      Podemos verificar se ela não está mais definida:

      Nada é retornado porque a variável foi removida.

      Definindo variáveis de ambiente no login

      Já mencionamos que muitos programas usam variáveis de ambiente para decidir as especificações de como operar. Não é interessante precisar definir variáveis importantes toda vez que iniciarmos uma sessão do shell. Além disso, já vimos quantas já são definidas no login. Sendo assim, como criamos e definimos variáveis automaticamente?

      Esse é realmente um problema mais complexo do que parece, devido aos inúmeros arquivos de configuração que o shell do bash lê, dependendo de como é iniciado.

      A diferença entre as sessões do shell com login, sem login, interativa e não interativa

      O shell do bash lê arquivos de configuração diferentes dependendo da forma como a sessão é iniciada.

      Uma distinção entre sessões diferentes é se o shell está sendo gerado como uma sessão com login ou sem login.

      Um shell com login é uma sessão de shell que começa pela autenticação do usuário. Se você estiver entrando em uma sessão de terminal ou via protocolo SSH e autenticar-se, sua sessão de shell será definida como um shell com login.

      Se você iniciar uma nova sessão de shell dentro de sua sessão autenticada, como fizemos chamando o comando bash do terminal, uma sessão sem login de shell será iniciada. Seus detalhes de autenticação não foram solicitados quando você iniciou seu shell filho.

      Outra distinção que pode ser feita é se uma sessão de shell é ou não interativa.

      Uma sessão de shell interativa é uma sessão que está anexada a um terminal. Uma sessão de shell não interativa é uma que não está anexada a uma sessão de terminal.

      Dessa forma, cada sessão de shell é classificada como sendo com ou sem login e interativa ou não interativa.

      Uma sessão normal que começa com o SSH é geralmente uma sessão de shell interativa com login. Um script executado a partir da linha de comando é geralmente executado em um shell não interativo e sem login. Uma sessão de terminal pode ser qualquer combinação dessas duas propriedades.

      A classificação da sessão de shell como sendo com ou sem login tem implicações sobre quais arquivos são lidos para inicializar a sessão de shell.

      Uma sessão iniciada como sessão com login lerá detalhes de configuração do arquivo /etc/profile primeiro. Em seguida, ela irá procurar pelo primeiro arquivo de configuração de shell de login no diretório base do usuário para obter detalhes de configuração específicos do usuário.

      Ela lê o primeiro arquivo que achar entre ~/.bash_profile, ~/.bash_login e ~/.profile e não lê nenhum arquivo adicional.

      Em contraste, uma sessão definida como um shell sem login lerá /etc/bash.bashrc e então o arquivo ~/.bashrc específico do usuário para compilar seu ambiente.

      Os shells não interativos leem a variável de ambiente chamada BASH_ENV e o arquivo especificado para definir o novo ambiente.

      Implementando variáveis de ambiente

      Como você pode ver, há uma grande variedade de arquivos diferentes que normalmente precisaríamos observar para colocar nossas configurações.

      Isso oferece uma grande flexibilidade que pode ajudar em situações específicas em que queremos certas configurações em um shell com login e outras configurações em um shell sem login. No entanto, na maior parte do tempo, vamos querer as mesmas configurações em ambas as situações.

      Felizmente, a maioria das distribuições Linux configuram os arquivos de configuração de login para originar os arquivos de configuração sem login. Isso significa que é possível definir as variáveis de ambiente que desejar tanto em arquivos com login, quanto nos sem login. Eles serão então lidos em ambos os cenários.

      Normalmente, vamos definir variáveis de ambiente específicas para cada usuário, e geralmente vamos querer que nossas configurações estejam disponíveis tanto em shells com login quanto sem login. Isso significa que o lugar para definir essas variáveis é no arquivo ~/.bashrc.

      Abra esse arquivo agora:

      Provavelmente, ele já irá conter uma quantidade considerável de dados. A maioria das definições aqui presentes são para definir opções do bash, que não estão relacionadas às variáveis de ambiente. É possível definir variáveis de ambiente da mesma forma que você faria da linha de comando:

      Qualquer nova variável de ambiente pode ser adicionada em qualquer lugar no arquivo ~/.bashrc, desde que não seja colocada no meio de outro comando ou loop for. Em seguida, podemos salvar e fechar o arquivo. Da próxima vez que você iniciar uma sessão do shell, sua declaração de variável de ambiente será lida e transmitida para o ambiente do shell. É possível forçar sua sessão atual a ler o arquivo agora digitando:

      Se precisar definir variáveis em todo o sistema, pense em adicioná-las ao /etc/profile, /etc/bash.bashrc ou /etc/environment.

      Conclusão

      As variáveis de ambiente e de shell estão sempre presentes em suas sessões de shell e podem ser muito úteis. Elas são uma maneira interessante para um processo pai definir detalhes de configuração para seus filhos, além de representarem uma maneira de definir opções fora dos arquivos.

      Isso oferece muitas vantagens em situações específicas. Por exemplo, a implantação de alguns mecanismos dependem de variáveis de ambiente para configurar informações de autenticação. Isso é útil, pois não requer a manutenção desses arquivos que podem ser vistos por partes externas.

      Existem muitos outros cenários, mais mundanos e comuns em que você precisará ler ou alterar o ambiente do seu sistema. Essas ferramentas e técnicas devem lhe dar uma boa base para fazer essas alterações e usá-las corretamente.



      Source link

      Como Instalar o Django e Configurar um Ambiente de Desenvolvimento no Ubuntu 20.04


      Introdução

      O Django é um framework web de código aberto, escrito em Python com seus princípios fundamentais sendo escalabilidade, reusabilidade e desenvolvimento rápido. Ele também é conhecido por sua consistência a nível de framework e pelo baixo acoplamento, permitindo que os componentes sejam independentes uns dos outros.

      Neste tutorial, vamos configurar um ambiente Django para fins de desenvolvimento em um servidor Ubuntu 20.04. Para um site ativo, você terá considerações adicionais, incluindo a conexão a um banco de dados, configuração de um nome de domínio e adição de camadas de segurança. Temos uma variedade de tutoriais de Django que podem ajudar você enquanto você cria sob nossa tag Django.

      Pré-requisitos

      Para completar este tutorial, você irá precisar de:

      Passo 1 — Instalando o Django

      Há várias maneiras de instalar o Django, usando o gerenciador de pacotes Python pip dentro de um ambiente virtual.

      Estando no diretório home do servidor, vamos criar o diretório que conterá nossa aplicação Django. Execute o seguinte comando para criar um diretório chamado django-apps, ou outro nome de sua escolha. Em seguida, vá até o diretório.

      • mkdir django-apps
      • cd django-apps

      Estando dentro do diretório django-apps, crie seu ambiente virtual. Vamos chamá-lo de generic env, mas você deve usar um nome que é significativo para você e seu projeto.

      Agora, ative o ambiente virtual com o seguinte comando:

      Você saberá que ele está ativado assim que o prefixo for alterado para (env), que será parecido com o seguinte, dependendo de qual diretório você está:

      Dentro do ambiente, instale o pacote Django usando o pip. A instalação do Django nos permite criar e executar aplicações Django.

      Uma vez instalado, verifique sua instalação do Django executando uma verificação de versão:

      Esta, ou algo parecido, será a saída resultante:

      Output

      3.0.6

      Com o Django instalado em seu servidor, podemos seguir em frente para criar um projeto de teste para garantir que tudo esteja funcionando corretamente. Criaremos uma aplicação web esqueleto.

      Passo 2 — Ajustando as Configurações de Firewall

      Se você seguiu nosso tutorial de configuração inicial do servidor ou tiver um firewall em execução em seu servidor, vamos precisar abrir a porta que vamos usar no firewall do nosso servidor. Para o firewall UFW, você pode abrir a porta com o seguinte comando:

      Se você estiver usando o Firewall da DigitalOcean, você pode selecionar HTTP das regras de entrada. Você pode ler mais sobre o Firewall da DigitalOcean e criar regras para ele modificando as regras de entrada.ou inbound rules

      Passo 3 — Iniciando o Projeto

      Agora, podemos gerar uma aplicação usando o django-admin, um utilitário de linha de comando para tarefas de administração em Python. Em seguida, podemos usar o comando startproject para criar a estrutura de diretórios do projeto para nosso site de teste.

      Estando no diretório django-apps, execute o seguinte comando:

      • django-admin startproject testsite

      Nota: executar o comando django-admin startproject <projectname> irá nomear tanto o diretório do projeto quanto o pacote de projeto como <projectname> e criar o projeto no diretório em que o comando foi executado. Se o parâmetro opcional <destination> for fornecido, o Django utilizará o diretório de destino fornecido como diretório do projeto e criará o manage.py e o pacote do projeto dentro dele.

      Agora podemos ver quais arquivos de projeto foram criados. Navegue até o diretório testsite , em seguida liste o conteúdo desse diretório para ver quais arquivos foram criados:

      Output

      manage.py testsite

      Você notará a saída que mostra que este diretório contém um arquivo chamado manage.py e uma pasta chamada testsite. O arquivo manage.py é similar ao django-admin e coloca o pacote do projeto no sys.path. Ele também define a variável de ambiente DJANGO_SETTINGS_MODULE para apontar para o arquivo settings.py do seu projeto.

      Você pode ver o script manage.py em seu terminal executando o comando less dessa forma:

      Quando você terminar de ler o script, pressione q para parar de visualizar o arquivo.

      Agora, vá até o diretório testsite para visualizar os outros arquivos que foram criados:

      Em seguida, execute o seguinte comando para listar o conteúdo do diretório:

      Você verá quatro arquivos:

      Output

      __init__.py asgi.py settings.py urls.py wsgi.py

      Vamos analisar o que são esses arquivos:

      • __init__.py atua como o entry point para seu projeto Python.
      • O asgi.py contém a configuração para o deployment opcional na Interface de Gateway de Servidor Assíncrono ou ASGI, que fornece um padrão para aplicativos que são síncronos e assíncronos, e é considerado como um sucessor do WSGI (veja abaixo).
      • settings.py descreve a configuração de sua instalação do Django e permite que o Django saiba quais configurações estão disponíveis.
      • urls.py contém uma lista de urlpatterns, que roteia e mapeia URLs para suas views
      • wsgi.py contém a configuração para a Interface de Gateway do Servidor Web ou WSGI, que fornece um padrão para aplicativos Python síncronos.

      Nota: embora os arquivos padrão sejam gerados, você ainda tem a capacidade de ajustar os arquivos asgi.py ou wsgi.py, a qualquer momento para os adequar às necessidades da implantação.

      Passo 4 — Configurando o Django

      Agora, podemos iniciar o servidor e visualizar o site em um host e porta designados executando o comando runserver.

      Vamos precisar adicionar o endereço IP do seu servidor à lista ALLOWED_HOSTS no arquivo settings.py, localizado em ~/test_django_app/testsite/testsite/.

      Como indicado em Django docs, a variável ALLOWED_HOSTS contém “uma lista de strings representando os nomes de host/domínio que este site de Django pode servir. Esta é uma medida de segurança para evitar ataques de cabeçalhos de Host HTTP, que são possíveis mesmo em muitas configurações de servidor web aparentemente seguras.

      Você pode usar seu editor de texto favorito para adicionar seu endereço IP. Por exemplo, se você estiver usando o nano, execute o seguinte comando:

      • nano ~/django-apps/testsite/testsite/settings.py

      Assim que executar o comando, você irá querer acessar a seção Allowed Hosts do documento e adicionar o endereço IP do seu servidor dentro de colchetes entre aspas simples ou duplas.

      settings.py

      """
      Django settings for testsite project.
      
      Generated by 'django-admin startproject' using Django 2.0.
      ...
      """
      ...
      # SECURITY WARNING: don't run with debug turned on in production!
      DEBUG = True
      
      # Edit the line below with your server IP address
      ALLOWED_HOSTS = ['your-server-ip']
      ...
      

      Você pode salvar a alteração e sair do nano mantendo pressionadas as teclas CTRL + x e, em seguida, pressionando a tecla y. Em seguida, vamos seguir em frente para acessar nosso app web através de um navegador.

      Passo 5 — Acessando o App Web do Django

      Com nossa configuração concluída, certifique-se de voltar para o diretório onde o manage.py está localizado:

      • cd ~/django-apps/testsite/

      Agora, execute o seguinte comando substituindo o texto your-server-ip pelo IP do seu servidor:

      • python manage.py runserver 0.0.0.0:8000

      Por fim, você pode acessar o link abaixo para ver como seu site esqueleto se apresenta, substituindo novamente o texto destacado pelo IP real do seu servidor:

      http://your-server-ip:8000/
      

      Assim que a página carregar, você verá o seguinte:

      Django Default Page

      Isso confirma que o Django foi instalado corretamente e o projeto de teste está funcionando corretamente.

      Para acessar a interface de administração, adicione /admin/ ao final do seu URL:

      http://your_server_ip:8000/admin/
      

      Isso o levará a uma tela de login:

      Django admin login

      Se você digitar o nome de usuário e senha do admin que você acabou de criar, você terá acesso à seção de administração principal do site:

      Django admin page

      Para mais informações sobre como trabalhar com a interface de administração do Django, consulte “Como Habilitar e Conectar a Interface Admin do Django”.

      Quando você terminar de testar seu app, você pode pressionar CTRL + C para parar o comando runserver. Isso o retornará para seu ambiente de programação.

      Quando estiver pronto para deixar seu ambiente Python, você pode executar o comando deactivate:

      A desativação do seu ambiente de programação o levará de volta ao prompt de comando do terminal.

      Conclusão

      Neste tutorial, você instalou o Django com sucesso e configurou um ambiente de desenvolvimento para começar a trabalhar em seu app Django.

      Agora você tem a base necessária para começar a desenvolver aplicações Web no Django.



      Source link

      Como instalar o Python 3 e configurar um ambiente de programação no CentOS 8


      Introdução

      O Python é uma linguagem de programação versátil e pode ser utilizada em vários projetos diferentes de programação. Inspirado pelo grupo de comédia britânico Monty Python, a equipe de desenvolvedores do Python queria torná-lo uma linguagem que fosse divertida de usar. O Python é uma linguagem com diversas aplicações que cresce em popularidade a cada dia, e é uma ótima escolha tanto para desenvolvedores iniciantes quanto experientes.

      Este tutorial o guiará na instalação do Python 3 em um servidor CentOS 8 em nuvem e na configuração do ambiente de programação através de linhas de comando.

      Pré-requisitos

      Será necessário um servidor CentOS 8 com uma conta de superusuário não root.

      Para configurar isso, você pode seguir nosso Guia de configuração inicial de servidor para o CentOS 8.

      Passo 1 — Preparando o sistema

      Antes de começar a instalação, atualize os aplicativos padrão do sistema para suas versões mais recentes.

      Utilizaremos a ferramenta de gerenciamento de pacotes de código aberto DNF, que significa Dandified YUM, a próxima geração da versão Yellowdog Updater, Modified (ou seja, yum). O DNF é o gerenciador de pacotes padrão nos sistemas Linux baseados em Red Hat, como o CentOS. Ele permitirá que você instale, atualize e remova os pacotes de software em seu servidor.

      Primeiro, vamos verificar se nosso gerenciador de pacotes está atualizado executando este comando:

      O sinalizador -y é usado para alertar o sistema que estamos cientes das alterações que estamos fazendo, impedindo que o terminal nos envie solicitações de confirmação.

      Assim que tudo estiver instalado, nossa configuração estará pronta e poderemos seguir para a instalação do Python 3.

      Passo 2 — Instalando e configurando o Python 3

      O CentOS é um derivado do RHEL (Red Hat Enterprise Linux), que tem a estabilidade como seu foco principal. Por este motivo, é mais comum encontrar versões testadas e estáveis dos aplicativos no sistema e nos pacotes para download. Portanto, ao utilizar o gerenciador de pacotes CentOS você se deparará com versões mais antigas do Python, e não com a mais recente.

      • sudo dnf install python3 -y

      Quando este processo terminar, verificaremos se a instalação foi bem-sucedida, verificando o número da versão dela com o comando python3:

      Com uma versão do Python 3 instalada com sucesso, receberemos a seguinte saída:

      Output

      Python 3.6.8

      Em seguida, instalaremos as ferramentas de desenvolvimento do CentOS, que são utilizadas para desenvolver e compilar o software a partir do código-fonte:

      • sudo dnf -y groupinstall development

      Com as ferramentas instaladas, seguiremos para a próxima seção, na qual vamos analisar como configurar os projetos de desenvolvimento do Python.

      Passo 3 — Configurando um ambiente virtual

      Com Python instalado e nosso sistema configurado, vamos criar nosso ambiente de programação com o venv.

      Os ambientes Virtuais permitem que você tenha um espaço isolado no seu computador para projetos Python, garantindo que cada um dos seus projetos possa ter seus próprios conjuntos de dependências que não perturbarão nenhum dos seus outros projetos.

      A configuração de um ambiente de programação nos permite ter mais controle sobre nossos projetos em Python, bem como sobre diferentes pacotes e versões. Isso é especialmente importante durante o trabalho com pacotes de terceiros.

      É possível configurar quantos ambientes de programação Python você quiser. Essencialmente, cada ambiente é um diretório ou uma pasta em seu servidor, e cada um deles contém alguns scripts para configurá-los como um ambiente.

      Escolha o diretório no qual você gostaria de colocar seus ambientes de programação Python, ou crie um novo diretório com o mkdir, desta maneira:

      • mkdir environments
      • cd environments

      Assim que estiver no diretório onde você quer que os ambientes fiquem, crie um ambiente executando o seguinte comando: Use um nome de ambiente que faça algum sentido para você. Aqui o chamaremos de my_env.

      Neste caso, o ambiente é o my_env, e este novo diretório contém alguns itens que serão exibidos se aplicarmos o comando ls ao diretório:

      Output

      bin include lib lib64 pyvenv.cfg

      Juntos, estes arquivos atuam para isolar seu trabalho Python do contexto mais amplo de sua máquina local, para que os arquivos do sistema e os arquivos do projeto não se misturem. Esta é uma boa prática para o controle de versão e para garantir que cada um dos seus projetos tenha acesso aos pacotes específicos de que necessita.

      Será necessário ativar o ambiente para poder usá-lo. Digite o seguinte comando para chamar o script activate no diretório bin:

      • source my_env/bin/activate

      Seu prompt de comando estará prefixado com o nome do seu ambiente, neste caso ele se chama my_env:

      Esse prefixo nos permite saber que o ambiente my_env está ativo no momento, o que significa que quando criarmos programas aqui, eles somente usarão as configurações e pacotes específicos deste ambiente.

      O gerenciador de pacotes Python pip já está instalado. Utilizaremos o pip, uma ferramenta do Python usada para instalar e gerenciar os pacotes de programação que desejamos usar em nossos projetos de desenvolvimento. Você pode instalar os pacotes Python digitando:

      • sudo pip install package_name

      Aqui, o package_name pode se referir a qualquer pacote ou biblioteca Python, tais como o Django para o desenvolvimento Web ou o NumPy para a computação científica. Se você quiser instalar o NumPy, use o comando pip install numpy.

      Nota: dentro do ambiente virtual, você pode usar o comando python em vez do python3, e o pip em vez do pip3. Se você usar o Python 3 ou o pip3 em sua máquina fora de um ambiente, terá que utilizar os comandos python3 e pip3 exclusivamente.

      Após seguir esses passos, seu ambiente virtual estará pronto para usar.

      Passo 4 — Criando um “Hello, World!”

      Agora que temos nosso ambiente virtual configurado, criaremos o programa tradicional “Hello, World! para testar nossa instalação. Isso confirmará que nosso ambiente está funcionando, e nos dará a oportunidade de nos familiarizarmos com o Python se ainda não estivermos.

      Para fazer isso, vamos abrir um editor de texto de linha de comando, como o vi, e criar um novo arquivo:

      Assim que arquivo de texto abrir em nossa janela de terminal, teremos que digitar i para entrar no modo de inserção. Em seguida, vamos escrever nosso primeiro programa:

      print("Hello, World!")
      

      Pressione ESC para sair do modo de inserção. Agora, digite :x e, depois, ENTER para salvar e sair do arquivo.

      Estamos prontos para executar nosso programa:

      O programa hello.py que você acabou de criar deve fazer com que o terminal produza o seguinte resultado:

      Output

      Hello, World!

      Para sair do ambiente, digite o comando deactivate e você voltará para seu diretório original.

      Conclusão

      Parabéns! Neste ponto, você tem um ambiente de programação Python 3 configurado em seu servidor CentOS8 e já pode começar um projeto de programação!

      Com sua máquina pronta para desenvolver softwares, você pode aprender mais sobre a programação em Python seguindo nossa série Como programar em Python, ou baixando gratuitamente o eBook Como programar em Python.

      Para se aprofundar em projetos de machine learning, consulte nosso eBook Projetos de machine learning em Python.



      Source link