Practica Flask
Practica Flask
vim /etc/resolv.conf
192.168.50.3
Python
pip3 -V
mkdir my-project
cd my-project
vim hello_world.py
#hello_world.py
app = Flask(__name__)
@app.route(‘/’)
def hello_world():
}wq:
vim etc/resolv.conf
192.168.50.3
export FLASK_APP=hello_world.py
Ifconfig
browser:
http://<ip>:5000
ls
tree
cd app/
cd ..
ls
rm hello_world.py*
tree
vim config.py
#config.py
DEBUG=True
}:wq
vim app/__init__.py
#app/__init__.py
app = Flask(__name__,instance_relative_config=True)
app.config.from_object(‘config’)
}:wq
vim run.py
#run.py
If __name__ == ‘__main__’:
app.run()
}:wq
export FLASK_APP=run.py
Como no hemos hecho las views por eso nos sale este mensaje
vim app/views.py
#app/views.py
@app.route(‘/’)
def index():
return render_template(“index.html”)
@app.route(‘/about’)
def about():
return render_template(“about.html”)
}:wq
cd app/templates/
ls
vim base.html
<!DOCTYPE html>
<html lang="es">
<head>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<nav>
</nav>
</div>
{% block body %}
{% endblock %}
<footer class="footer">
</footer>
</div>
</body>
</html>
}:wq
vim index.html
{% extends "base.html" %}
{% 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
{% extends "base.html" %}
{% 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 ../..
192.168.50.3:5000
cd /var/www/
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/”)
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
</Directory>
</VirtualHost>
}:wq
service httpd restart
192.168.50.3
PRACTICA
Para base.html:
<!DOCTYPE html>
<html lang="es">
<head>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<nav>
</ul>
</nav>
</div>
{% block body %}
{% endblock %}
<footer class="footer">
</footer>
</div>
</body>
</html>
En templates creo articles.html y los demás:
Para articles.html
{% extends "base.html" %}
{% block body %}
<h1>Artículos</h1>
<ul>
{% endfor %}
</ul>
{% endblock %}
Para articles1.html y los demás, solo se le cambia el numero dependiendo del articulo:
{% extends "base.html" %}
{% 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,
'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,
'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():
@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")