Você está aqui: Python ::: Dicas & Truques ::: HTTP Web Server |
Como criar um servidor web em Python usando as classes BaseHTTPRequestHandler e HTTPServerQuantidade de visualizações: 494 vezes |
Nesta dica mostrarei como criar um web server em Python, ou seja, o nosso próprio servidor web. Para isso nós vamos criar uma classe ServidorWeb que herda de BaseHTTPRequestHandler, que nos fornece todos os métodos necessários para tratar requisições HTTP, tais como GET e POST. Note que definir o nome do host como "localhost" e a porta como "8080". Veja o código completo para o nosso web server em Python: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # precisamos importar os objetos BaseHTTPRequestHandler e HTTPServer # do módulo http.server from http.server import BaseHTTPRequestHandler, HTTPServer # precisamos também do módulo time import time # vamos criar a classe ServidorWeb, que herda de # BaseHTTPRequestHandler class ServidorWeb(BaseHTTPRequestHandler): # vamos implementar o método que responde às requisições GET def do_GET(self): self.send_response(200) self.send_header("Content-type", "text/html") self.end_headers() self.wfile.write(bytes("<html><head><title>Meu Servidor Web</title></head>", "utf-8")) self.wfile.write(bytes("<p>Requsição: %s</p>" % self.path, "utf-8")) self.wfile.write(bytes("<body>", "utf-8")) self.wfile.write(bytes("<p>Exemplo de Web Server em Python</p>", "utf-8")) self.wfile.write(bytes("</body></html>", "utf-8")) # função principal do programa def main(): # agora criamos um objeto HTTPServer host = "localhost" porta = 8080 servidorWeb = HTTPServer((host, porta), ServidorWeb) print("Servidor iniciado em http://%s:%s" % (host, porta)) # tentamos levantar o servidor try: servidorWeb.serve_forever() except KeyboardInterrupt: pass # liberamos o servidor web servidorWeb.server_close() print("O servidor web foi parado.") if __name__== "__main__": main() Ao executar este código você verá a seguinte mensagem: Servidor iniciado em http://localhost:8080 A partir daí você pode abrir o seu navegador neste endereço e já verá a página web que definimos no corpo do método do_GET() da classe ServidorWeb. Agora é só explorar as dicas dessa seção para aprender ainda mais sobre redes, soquetes e servidores web usando a linguagem Python. |
Link para compartilhar na Internet ou com seus amigos: |
Python ::: Dicas & Truques ::: Matemática e Estatística |
Como obter o resto de uma divisão de inteiros em Python - O operador módulo % da linguagem PythonQuantidade de visualizações: 19884 vezes |
Como obter o resto de uma divisão de inteiros em Python - O operador módulo % da linguagem Python Além dos operadores normais para aritmética, a linguagem Python nos fornece também o operador %, chamado comumente de operador de módulo. Este operador atua sobre dois valores inteiros e retorna o resto da divisão entre eles. Veja um exemplo completo de seu uso: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- def main(): a = 9 b = 2 res = a / b resto = a % b print(a, "dividido por", b, "é", res) print("O resto da divisao é", resto) if __name__== "__main__": main() Ao executarmos este código Python nós teremos o seguinte resultado: 9 dividido por 2 é 4.5 O resto da divisao é 1 |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Python - Criando dois vetores de inteiros de forma que a soma dos elementos individuais de cada vetor seja igual a 30Quantidade de visualizações: 707 vezes |
Pergunta/Tarefa: Considere os seguintes vetores: # dois vetores de 5 inteiros cada a = [50, -2, 9, 5, 17] b = [0 for x in range(5)] Sua saída deverá ser parecida com: Valores no vetor a: 50 -2 9 5 17 Valores no vetor b: -20 32 21 25 13 Veja a resolução comentada deste exercício usando Python: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # método principal def main(): # dois vetores de 5 inteiros cada a = [50, -2, 9, 5, 17] b = [0 for x in range(5)] # vamos preencher o segundo vetor de forma que a soma dos # valores de seus elementos seja 30 for i in range(len(a)): b[i] = 30 - a[i] # vamos mostrar o resultado print("Valores no vetor a: ", end="") for i in range(len(a)): print("{0} ".format(a[i]), end="") print("\nValores no vetor b: ", end="") for i in range(len(b)): print("{0} ".format(b[i]), end="") if __name__== "__main__": main() |
Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Arrays e Matrix (Vetores e Matrizes) |
Como gerar vetores e matrizes com números inteiros aleatórios usando a função random.randint() da biblioteca NumPy para - Machine Learning com PythonQuantidade de visualizações: 718 vezes |
Veremos nessa dica como podemos usar o método random.randint() da biblioteca NumPy para gerar vetores e matrizes já preenchidos com números inteiros aleatórios. Note que a criação de vetores e matrizes preenchidos com números randômicos é uma parte importante para o desenvolvimento de modelos de teste (test models) em Inteligência Artificial (IA), Machine Learning e outras áreas de estudo que envolvem Data Science. Vamos começar com a forma mais simples do uso da função random.randint() para gerar um vetor de 10 elementos contendo números aleatórios de 0 até 10 (não incluído): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # importamos o módulo random da bibliteca NumPy from numpy import random def main(): # vamos gerar um vetor de números inteiros aleatórios # de 0 (incluído) à 10 (não incluído) valores = random.randint(10, size=10) print("O vetor gerado foi: ", valores) if __name__== "__main__": main() Ao executar este código teremos um resultado parecido com: O vetor gerado foi: [0 3 2 3 8 9 3 9 6 4] Aqui nós informamos o limite alto do valor aleatório a ser gerado (mas ele não é incluído). Se quisermos limitar a faixa inferior, podemos tirar proveito dos parâmetros low e high da função randint(). Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # importamos o módulo random da bibliteca NumPy from numpy import random def main(): # vamos gerar um vetor de números inteiros aleatórios # de 50 (incluído) à 101 (não incluído) valores = random.randint(50, 101, 10) print("O vetor gerado foi: ", valores) if __name__== "__main__": main() Agora o resultado será parecido com: O vetor gerado foi: [92 89 66 52 61 77 55 58 72 55] Para gerarmos uma matriz, por exemplo, de 2 linhas e 4 colunas, só precisamos gerar o vetor de números aleatórios e em seguida usar o método reshape(), também da biblioteca NumPy para converter a matriz de uma dimensão (vetor) em uma matriz de duas dimensões. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- from numpy import random def main(): # vamos gerar um vetor de números inteiros aleatórios # de 1 (incluído) à 21 (não incluído) valores = random.randint(1, 21, 8) # agora vamos converter o vetor para uma matriz # de 2 linhas e 4 colunas valores = valores.reshape(2, 4) print("A matriz gerada foi: ", valores) if __name__== "__main__": main() Quando executamos este código nós temos um resultado parecido com: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- A matriz gerada foi: [[17 5 2 9] [14 10 10 19]] A partir da versão 1.19 da NumPy, os desenvolvedores da biblioteca recomendam o uso do método integers() do módulo default_rng(). |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Fases de uma obra Ao documento em que se registram, pela ordem de sucessão em que são executados, os serviços necessários à realização da construção e os respectivos prazos, dá-se o nome de: A) Diário de obra. B) Cronograma físico-financeiro. C) Gráfico de Gantt. D) Planejamento. E) Cronograma físico. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em AutoCAD Civil 3D |
Topografia no Civil 3D São linhas usadas para representar a topografia, mostrando as mudanças de elevação no terreno. Essas linhas conectam posições com a mesma elevação em uma superfície. Estamos falando de: A) Control Points (Pontos de Controle) B) Breaklines (Linhas de Quebra) C) Contour Lines (Curvas de Nível) D) Feature Lines (Linhas de Características) E) Parcels (Parcelas, Lotes) Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Analise o seguinte código JavaScriptvar a = new Array(1, 2, 3); for (var i in a) { window.alert("a[i] = " + a[i]); } Quantas vezes o diálogo alert será exibido? A) 3 vezes (uma vez para cada elemento do array). B) 4 vezes (uma vez para cada elemento e um alert adicional para a propriedade length do array). C) 3 ou 4 vezes, dependendo do navegador. D) O laço for...in não existe em JavaScript e vai provocar um erro. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Ética Empresarial e Profissional: Noções Gerais A ética investiga a forma do comportamento humano e da moral e busca explicá-los. É nesse contexto que se concentra o verdadeiro valor da ética. Portanto, a ética fornece a compreensão racional do comportamento humano, o qual será, posteriormente, o elemento formador da consciência. Assinale a alternativa que explica a função da consciência. A) A consciência nos leva a buscar o que é realmente bom, correto e justo, mantendo as mesmas condições que determinam limites e capacidades. B) A consciência não nos leva a buscar necessariamente o que é correto e justo. C) A consciência não é influenciada pela ética em nenhum aspecto ou momento. D) A consciência nos leva a buscar o que é realmente bom, correto e justo, visando a identificar e a estabelecer os novos parâmetros que nortearão os limites e as capacidades. E) A consciência nos leva a buscar o que é realmente bom, correto e justo, condicionando-se aos interesses particulares. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Dimensionamento de pilares de canto A disposição dos pilares e a determinação das medidas de sua transversal estão entre as primeiras etapas em um dimensionamento de pilares de canto. Segundo a NBR 6118, um pilar não pode ter dimensões menores do que 19cm. Quando isso ocorre, deve ser adotado um coeficiente adicional (yn) para a majoração dos esforços solicitantes como medida de segurança, a ser determinado de acordo com a menor dimensão do pilar. Analise os pilares a seguir: Qual o valor do coeficiente adicional (yn) que deve ser adotado para os referidos pilares, respectivamente? A) yn1 = 1,05. yn2 = 1,25. yn3 = 1,50. yn4 = 1,35. B) yn1 = 1,05. yn2 = 1,00. yn3 = 1,00. yn4 = 1,25. C) yn1 = 1,05. yn2 = 1,00. yn3 = 1,15. yn4 = 1,75. D) yn1 = 2,50. yn2 = 1,85. yn3 = 1,25. yn4 = 1,75. E) yn1 = 2,50. yn2 = 1,00. yn3 = 1,65. yn4 = 2,25. Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |