martes, 15 de junio de 2021

Números primos en Flask

Disponemos de varios métodos para generar números primos en Python y deseamos crear una página web con Flask para mostrarlos.

Los números primos se pueden ver en la siguiente entrada del blog.

Números primos en Python

Elegimos el último método que contiene el código más breve y montamos con él un fichero llamado genera.py.

genera.py

def generaPrimos(n):
 lista=[i for i in range(2,n+1)]
 for i, k in enumerate(lista):
  if i<=int(n**.5):
   for j in lista[i+1:]:
    if j % k == 0:
     lista.remove(j)
 return lista

Creamos el archivo app.py que lanza la aplicación y el servidor Flask.

app.py
from genera import generaPrimos
from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def index():
 n=1000
 titulo="Números primos hasta " + '{:,}'.format(n).replace(',', '.')
 return render_template("index.html", titulo=titulo, lista=generaPrimos(n))

if __name__ == "__main__":
 app.run(debug=True)

Veamos la estructura de ficheros.


Los archivos style.css y main.js están vacíos. El archivo favicon.ico es un icono muy pequeñito creado en la siguiente web, aunque pudiera ser cualquier otro fichero de imagen, tipo icono, muy pequeño.


Veamos el archivo index.html.

index.html
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Home</title>
  <link rel="shortcut icon" href="../static/imgs/favicon.ico">
 </head>
 <body>
  <h1>{{ titulo }}</h1>
  <ul>
  {% for value in lista %}
  <li>{{ value }}</li>
  {% endfor %}
  <ul>
 </body>
</html>

Se lanza la aplicación app.py con python y así podremos ver la página en local.



No hay comentarios:

Publicar un comentario