0% encontró este documento útil (0 votos)
77 vistas17 páginas

Practica Flask

El documento describe cómo configurar un servidor web con Flask en CentOS para desplegar aplicaciones Python. Explica los pasos para instalar las dependencias necesarias, crear la estructura del proyecto Flask, configurar el servidor virtual en Apache y probar la aplicación desplegada.

Cargado por

Santiago12
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
77 vistas17 páginas

Practica Flask

El documento describe cómo configurar un servidor web con Flask en CentOS para desplegar aplicaciones Python. Explica los pasos para instalar las dependencias necesarias, crear la estructura del proyecto Flask, configurar el servidor virtual en Apache y probar la aplicación desplegada.

Cargado por

Santiago12
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 17

CAMBIAR EL RESOLV DE LA MAQUINA

vim /etc/resolv.conf

192.168.50.3

Para saber si está instalado Python ejecutar:

Python

sudo yum install epel-release

sudo yum install python3-pip

pip3 -V

sudo pip3 install Flask

directorio para empezar:

mkdir my-project

cd my-project

vim hello_world.py

#hello_world.py

from flask import Flask

app = Flask(__name__)

@app.route(‘/’)

def hello_world():

return ‘Hello World!’

}wq:
vim etc/resolv.conf

192.168.50.3

Para correr el archivo hello_world.py:

export FLASK_APP=hello_world.py

python3 -m flask run --host=0.0.0.0

Ifconfig

browser:

http://<ip>:5000

Proyecto Flask – Parte 1


mkdir app app/templates

ls

tree

touch run.py config.py

cd app/

touch __init__.py views.py

cd ..

ls

rm hello_world.py*

tree

vim config.py

#config.py

DEBUG=True

}:wq

vim app/__init__.py

#app/__init__.py

from flask import Flask

app = Flask(__name__,instance_relative_config=True)

from app import views

app.config.from_object(‘config’)

}:wq
vim run.py

#run.py

from app import app

If __name__ == ‘__main__’:

app.run()

}:wq

Para correr el archivo:

export FLASK_APP=run.py

python3 -m flask run --host=0.0.0.0


En el browser:

Como no hemos hecho las views por eso nos sale este mensaje

Proyecto Flask – Parte 2

vim app/views.py

#app/views.py

from flask import render_template

from app import app

@app.route(‘/’)

def index():

return render_template(“index.html”)

@app.route(‘/about’)

def about():
return render_template(“about.html”)

}:wq

Para correr el archivo:

python3 -m flask run --host=0.0.0.0

SALE QUE NO SE ENCUENTRA EL TEMPLATE PERO PORQUE NO LO HEMOS CREADO

cd app/templates/

touch base.html index.html about.html

ls

vim base.html

<!DOCTYPE html>

<html lang="es">

<head>

<title>{% block tittle %}{% endblock %}</title>

<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

<link rel="stylesheet" href="https://getbootstrap.com/examples/jumbotron-narrow/jumbotron-


narrow.css">

</head>

<body>

<div class="container">

<div class="header clearfix">

<nav>

<ul class="nav nav-pills pull-right">

<li role="presentation"><a href="/">Home</a></li>

<li role="presentation"><a href="/about">About</a></li>

<li role="presentation"><a href="/http://flask.pocoo.org" target="_blank">More About


Flask</a></li>
</ul>

</nav>

</div>

{% block body %}

{% endblock %}

<footer class="footer">

<p>&copy; 2023 Juan David Duque Echeverry.</p>

</footer>

</div>

</body>

</html>

}:wq

vim index.html

<!-- index.html -->

{% extends "base.html" %}

{% block tittle %}Home{% endblock %}

{% block body %}
<div class="jumbotron">

<h1>Flask is awesome</h1>

<p class="lead">Lorem ipsum dolor, sit amet consectetur adipisicing elit. Illo, officia?.</p>

</div>

{% endblock %}

}:wq

vim about.html

<!-- about.html -->

{% extends "base.html" %}

{% block tittle %}About{% endblock %}

{% block body %}

<div class="jumbotron">

<h1>About</h1>

<p class="lead">Lorem ipsum dolor, sit amet consectetur adipisicing elit. Illo, officia?.</p>

</div>

{% endblock %}

}:wq
cd ../..

python3 -m flask run --host=0.0.0.0

desde el browser nuevamente:

192.168.50.3:5000

Desplegar sitio Python flask en apache + centos 8

Tener instalado httpd:

rpm -q httpd --> verificar si está instalado

yum install httpd --> instalar HTTP

service httpd start --> iniciar el servicio

service httpd status --> verificar estado

cd /var/www/

yum install python3-mod_wsgi

apachectl -M | grep wsgi


vim /etc/selinux/config (para deshabilitar el selinux)

reiniciamos con reboot

sestatus

cp -r my-project/ /var/www/

cd my-project/

vim application.wsgi

#!/usr/bin/python

import sys

sys.path.insert(0,”/var/www/my-project/”)

from app import app as application

vim /etc/httpd/conf/httpd.conf

WSGIScriptAlias / /var/www/my-project/application.wsgi

<VirtualHost *>

ServerName www.servicios.com

<Directory /var/www/my-project/>

Order deny,allow

Allow from all

</Directory>

</VirtualHost>

}:wq
service httpd restart

service httpd status

Desde el browser probamos:

192.168.50.3

PRACTICA

Para base.html:

<!DOCTYPE html>

<html lang="es">

<head>

<title>{% block tittle %}{% endblock %}</title>

<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

<link rel="stylesheet" href="https://getbootstrap.com/examples/jumbotron-narrow/jumbotron-


narrow.css">

</head>
<body>

<div class="container">

<div class="header clearfix">

<nav>

<ul class="nav nav-pills pull-right">

<li role="presentation"><a href="/">Home</a></li>

<li role="presentation"><a href="/about">About</a></li>

<li role="presentation"><a href="/articles">Articles</a></li>

<li role="presentation"><a href="/http://flask.pocoo.org" target="_blank">More About


Flask</a></li>

</ul>

</nav>

</div>

{% block body %}

{% endblock %}

<footer class="footer">

<p>&copy; 2023 Juan David Duque Echeverry.</p>

</footer>

</div>

</body>

</html>
En templates creo articles.html y los demás:

Para articles.html

<!-- articles.html -->

{% extends "base.html" %}

{% block title %}Articles{% endblock %}

{% block body %}

<h1>Artículos</h1>

<ul>

{% for article in articles %}

<li><a href="/articles{{ article['id'] }}">{{ article['title'] }}</a></li>

{% endfor %}

</ul>

{% endblock %}
Para articles1.html y los demás, solo se le cambia el numero dependiendo del articulo:

<!-- articles1.html -->

{% extends "base.html" %}

{% block title %}Articles{% endblock %}

{% block body %}

<h1>Artículos</h1>

<h2>1</h2>

{% endblock %}

Para views.py:

def Articles():

articles = [

'id': 1,
'title': 'Article One',

'body': 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',

'author': 'Mondragon',

'create_date': '24-10-2018'

},

'id': 2,

'title': 'Article Two',

'body': 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',

'author': 'Martinez',

'create_date': '24-10-2018'

},

'id': 3,

'title': 'Article Three',

'body': 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',

'author': 'Perez',

'create_date': '24-10-2018'

return articles
@app.route('/articles')

def articles():

articles_list = Articles() # Llamamos a la función Articles() para obtener la lista de artículos

return render_template('articles.html', articles=articles_list)

@app.route('/articles1')

def articles1():

return render_template("articles1.html")

@app.route('/articles2')

def articles2():

return render_template("articles2.html")

@app.route('/articles3')

def articles3():

return render_template("articles3.html")

También podría gustarte