Skip to content

Commit

Permalink
Mais conversões
Browse files Browse the repository at this point in the history
  • Loading branch information
fabricioveronez committed Oct 27, 2024
1 parent 8b42a66 commit f379c58
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 16 deletions.
8 changes: 1 addition & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1 @@
# Projeto conversão de distância

### Sobre o projeto
O projeto conversão de distância é um projeto desenvolvido em Python. O projeto tem como objetivo ser um exemplo para a criação de ambiente com containers usando Python.

### Observações do projeto
A aplicação é exposta usando a porta 5000
# conversao-distancia
44 changes: 35 additions & 9 deletions app.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from flask import Flask, render_template, request, url_for, redirect, Response, jsonify
from flask import Flask, render_template, request
import logging
import socket # Módulo para obter informações do servidor

app = Flask(__name__,
static_url_path='',
Expand All @@ -8,24 +9,49 @@

@app.route('/', methods=['GET', 'POST'])
def index():
# Obter informações do servidor
hostname = socket.gethostname()
ip_address = socket.gethostbyname(hostname)

if request.method == 'GET':
return render_template('index.html')
return render_template('index.html', hostname=hostname, ip_address=ip_address)
else:
selecao = request.form.get('selectTemp')
valor = request.form.get('valorRef')

if selecao == '1':
resultado = float(valor) / 1000
try:
valor = float(valor)
except ValueError:
return render_template('index.html', conteudo={'unidade': 'inválido', 'valor': 'Entrada inválida'}, hostname=hostname, ip_address=ip_address)

# Lógica de conversão
if selecao == '1': # Metro para Quilômetros
resultado = valor / 1000
unidade = "quilômetros"
else:
resultado = float(valor) * 1000
elif selecao == '2': # Quilômetros para Metro
resultado = valor * 1000
unidade = "metros"
elif selecao == '3': # Metro para Milhas
resultado = valor / 1609.34
unidade = "milhas"
elif selecao == '4': # Milhas para Metro
resultado = valor * 1609.34
unidade = "metros"

return render_template('index.html', conteudo={'unidade': unidade, 'valor': resultado})
elif selecao == '5': # Metro para Pés
resultado = valor * 3.28084
unidade = "pés"
elif selecao == '6': # Pés para Metro
resultado = valor / 3.28084
unidade = "metros"
else:
resultado = "Inválido"
unidade = ""

return render_template('index.html', conteudo={'unidade': unidade, 'valor': resultado}, hostname=hostname, ip_address=ip_address)

if __name__ == '__main__':
app.run()
else:
gunicorn_logger = logging.getLogger('gunicorn.error')
app.logger.handlers = gunicorn_logger.handlers
app.logger.setLevel(gunicorn_logger.level)
app.logger.setLevel(gunicorn_logger.level)
7 changes: 7 additions & 0 deletions templates/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,10 @@ <h1>Conversor de Distância</h1>
<select class="form-select" aria-label="Default select example" id="selectTemp" name="selectTemp">
<option selected value="1">Metro => Quilômetros</option>
<option value="2">Quilômetros => Metro</option>
<option value="3">Metro => Milhas</option>
<option value="4">Milhas => Metro</option>
<option value="5">Metro => Pés</option>
<option value="6">Pés => Metro</option>
</select>
</div>
<div class="mb-3 row">
Expand All @@ -66,6 +70,9 @@ <h3>Valor Convertido</h3>
</div>
</main>
<footer class="footer mt-auto py-3 bg-light">
<div class="container">
<span class="text-muted">Servidor que processou a requisição: {{ hostname }} (IP: {{ ip_address }})</span>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
integrity="sha384-U1DAWAznBHeqEIlVSCgzq+c9gqGAJn5c/t99JyeKa9xxaYpSvHU5awsuZVVFIhvj"
Expand Down

0 comments on commit f379c58

Please sign in to comment.