Construyendo una página web usando python.
Hay muchos módulos o marcos que permiten construir tu página web usando python como una botella, Django, Flask, etc. Pero los más populares son Flask y Django. Django es fácil de usar en comparación con Flask, pero Flask le brinda la versatilidad para programar.
Para comprender qué es Flask, debe comprender algunos términos generales.
- WSGI Web Server Gateway Interface (WSGI) se ha adoptado como estándar para el desarrollo de aplicaciones web de Python. WSGI es una especificación para una interfaz universal entre el servidor web y las aplicaciones web.
- Werkzeug Es un conjunto de herramientas WSGI, que implementa requests, objetos de respuesta y otras funciones de utilidad. Esto permite construir un marco web sobre él. El marco Flask utiliza Werkzeug como una de sus bases.
- jinja2 jinja2 es un popular motor de plantillas para Python. Un sistema de plantillas web combina una plantilla con una determinada fuente de datos para representar páginas web dinámicas.
Flask es un marco de aplicación web escrito en Python. Flask se basa en el kit de herramientas Werkzeug WSGI y el motor de plantillas Jinja2. Ambos son proyectos de Pocco.
Instalación:
Necesitaremos dos paquetes para configurar su entorno. virtualenv para que un usuario cree múltiples entornos de Python uno al lado del otro. Por lo tanto, puede evitar problemas de compatibilidad entre las diferentes versiones de las bibliotecas y la próxima será Flask .
entorno virtual
pip install virtualenv
Crear entorno virtual de Python
virtualenv venv
Activar entorno virtual
windows > venv\Scripts\activate linux > source ./venv/bin/activate
Matraz
pip install Flask
Después de completar la instalación del paquete, tengamos en nuestras manos el código.
Python3
# Importing flask module in the project is mandatory # An object of Flask class is our WSGI application. from flask import Flask # Flask constructor takes the name of # current module (__name__) as argument. app = Flask(__name__) # The route() function of the Flask class is a decorator, # which tells the application which URL should call # the associated function. @app.route('/') # ‘/’ URL is bound with hello_world() function. def hello_world(): return 'Hello World' # main driver function if __name__ == '__main__': # run() method of Flask class runs the application # on the local development server. app.run()
Guárdelo en un archivo y luego ejecute el script. Obtendremos un resultado como este.
Luego, vaya a la URL que se proporciona allí y verá su primera página web que muestra hola mundo allí en su servidor local.
Profundizando más en el contexto, el decorador route() en Flask se usa para vincular una URL a una función. Ahora, para ampliar esta funcionalidad, nuestra pequeña aplicación web también está equipada con otro método add_url_rule() que es una función de un objeto de aplicación que también está disponible para vincular una URL con una función como en el ejemplo anterior, se usa route().
Ejemplo:
def gfg(): return ‘geeksforgeeks’ app.add_url_rule(‘/’, ‘g2g’, gfg)
Producción:
geeksforgeeks
También puede agregar variables en su aplicación web, bueno, podría estar pensando en cómo lo ayudará, lo ayudará a crear una URL dinámicamente. Entonces, averigüémoslo con un ejemplo.
Python3
from flask import Flask app = Flask(__name__) @app.route('/hello/<name>') def hello_name(name): return 'Hello %s!' % name if __name__ == '__main__': app.run()
Y vaya a la URL http://127.0.0.1:5000/hello/geeksforgeeks , obtendrá el siguiente resultado.
También podemos usar métodos HTTP en Flask. Veamos cómo hacerlo.
El protocolo HTTP es la base de la comunicación de datos en la red mundial. En este protocolo se definen diferentes métodos de recuperación de datos de la URL especificada. Los métodos se describen a continuación.
GET: Envía datos en forma simple o sin cifrar al servidor.
HEAD: envía datos en forma simple o sin cifrar al servidor sin cuerpo.
HEAD: Envía los datos del formulario al servidor. Los datos no se almacenan en caché.
PUT: Reemplaza el recurso de destino con el contenido actualizado.
ELIMINAR: elimina el recurso de destino proporcionado como URL.
De forma predeterminada, la ruta Flask responde a las requests GET. Sin embargo, esta preferencia se puede modificar proporcionando argumentos de métodos al decorador route(). Para demostrar el uso del método POST en el enrutamiento de URL, primero, creemos un formulario HTML y usemos el método POST para enviar datos de formulario a una URL. Ahora vamos a crear una página de inicio de sesión HTML.
A continuación se muestra el código fuente del archivo:
HTML
<html> <body> <form action = "http://localhost:5000/login" method = "post"> <p>Enter Name:</p> <p><input type = "text" name = "nm" /></p> <p><input type = "submit" value = "submit" /></p> </form> </body> </html>
Ahora guarde este archivo HTML y pruebe este script de python para crear el servidor.
Python3
from flask import Flask, redirect, url_for, request app = Flask(__name__) @app.route('/success/<name>') def success(name): return 'welcome %s' % name @app.route('/login', methods=['POST', 'GET']) def login(): if request.method == 'POST': user = request.form['nm'] return redirect(url_for('success', name=user)) else: user = request.args.get('nm') return redirect(url_for('success', name=user)) if __name__ == '__main__': app.run(debug=True)
Después de que el servidor de desarrollo comience a ejecutarse, abra login.html en el navegador, ingrese su nombre en el campo de texto y haga clic en el botón Enviar . La salida sería la siguiente.
El resultado será algo como esto.
Y hay mucho más en Flask que esto. Si está interesado en este marco web de Python, puede profundizar en los enlaces que se proporcionan a continuación para obtener más información.
Este artículo es una contribución de Subhajit Saha . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA