Browse Source

first commit

master
josedom24 7 years ago
parent
commit
6733184869
14 changed files with 481 additions and 0 deletions
  1. +24
    -0
      app.py
  2. +7
    -0
      requirements.txt
  3. +106
    -0
      sevilla.xml
  4. BIN
      static/css/arrow.png
  5. BIN
      static/css/arrow_select.png
  6. BIN
      static/css/back.png
  7. BIN
      static/css/panel.png
  8. BIN
      static/css/pattern.png
  9. +277
    -0
      static/css/style.css
  10. BIN
      static/css/tabs.png
  11. +45
    -0
      templates/base.html
  12. +9
    -0
      templates/inicio.html
  13. +5
    -0
      templates/resultado.html
  14. +8
    -0
      templates/temperaturas.html

+ 24
- 0
app.py View File

@ -0,0 +1,24 @@
from flask import Flask, request,url_for,render_template,abort
from lxml import etree
import os
app = Flask(__name__)
@app.route('/',methods=["GET","POST"])
def inicio():
doc=etree.parse("sevilla.xml")
municipios=doc.findall("municipio")
return render_template("inicio.html",municipios=municipios)
@app.route('/<code>')
def temperatura(code):
try:
doc=etree.parse("http://www.aemet.es/xml/municipios/localidad_"+code+".xml")
except:
abort(404)
name=doc.find("nombre").text
max=doc.find("prediccion/dia/temperatura").find("maxima").text
min=doc.find("prediccion/dia/temperatura").find("minima").text
return render_template("temperaturas.html",name=name,max=max,min=min)
if __name__ == '__main__':
app.run()

+ 7
- 0
requirements.txt View File

@ -0,0 +1,7 @@
click==6.7
Flask==0.12.2
itsdangerous==0.24
Jinja2==2.9.6
lxml==4.0.0
MarkupSafe==1.0
Werkzeug==0.12.2

+ 106
- 0
sevilla.xml View File

@ -0,0 +1,106 @@
<provincia id="Sevilla">
<municipio value="alanis-id41002">Alanís</municipio>
<municipio value="albaida-del-aljarafe-id41003">Albaida del Aljarafe</municipio>
<municipio value="alcala-de-guadaira-id41004">Alcalá de Guadaíra</municipio>
<municipio value="alcala-del-rio-id41005">Alcalá del Río</municipio>
<municipio value="alcolea-del-rio-id41006">Alcolea del Río</municipio>
<municipio value="algaba-la-id41007">Algaba, La</municipio>
<municipio value="algamitas-id41008">Algámitas</municipio>
<municipio value="almaden-de-la-plata-id41009">Almadén de la Plata</municipio>
<municipio value="almensilla-id41010">Almensilla</municipio>
<municipio value="arahal-id41011">Arahal</municipio>
<municipio value="aznalcazar-id41012">Aznalcázar</municipio>
<municipio value="aznalcollar-id41013">Aznalcóllar</municipio>
<municipio value="badolatosa-id41014">Badolatosa</municipio>
<municipio value="benacazon-id41015">Benacazón</municipio>
<municipio value="bollullos-de-la-mitacion-id41016">Bollullos de la Mitación</municipio>
<municipio value="bormujos-id41017">Bormujos</municipio>
<municipio value="brenes-id41018">Brenes</municipio>
<municipio value="burguillos-id41019">Burguillos</municipio>
<municipio value="cabezas-de-san-juan-las-id41020">Cabezas de San Juan, Las</municipio>
<municipio value="camas-id41021">Camas</municipio>
<municipio value="campana-la-id41022">Campana, La</municipio>
<municipio value="cantillana-id41023">Cantillana</municipio>
<municipio value="canada-rosal-id41901">Cañada Rosal</municipio>
<municipio value="carmona-id41024">Carmona</municipio>
<municipio value="carrion-de-los-cespedes-id41025">Carrión de los Céspedes</municipio>
<municipio value="casariche-id41026">Casariche</municipio>
<municipio value="castilblanco-de-los-arroyos-id41027">Castilblanco de los Arroyos</municipio>
<municipio value="castilleja-de-guzman-id41028">Castilleja de Guzmán</municipio>
<municipio value="castilleja-de-la-cuesta-id41029">Castilleja de la Cuesta</municipio>
<municipio value="castilleja-del-campo-id41030">Castilleja del Campo</municipio>
<municipio value="castillo-de-las-guardas-el-id41031">Castillo de las Guardas, El</municipio>
<municipio value="cazalla-de-la-sierra-id41032">Cazalla de la Sierra</municipio>
<municipio value="constantina-id41033">Constantina</municipio>
<municipio value="coria-del-rio-id41034">Coria del Río</municipio>
<municipio value="coripe-id41035">Coripe</municipio>
<municipio value="coronil-el-id41036">Coronil, El</municipio>
<municipio value="corrales-los-id41037">Corrales, Los</municipio>
<municipio value="cuervo-de-sevilla-el-cuervo-el-id41903">Cuervo de Sevilla, El</municipio>
<municipio value="dos-hermanas-id41038">Dos Hermanas</municipio>
<municipio value="ecija-id41039">Écija</municipio>
<municipio value="espartinas-id41040">Espartinas</municipio>
<municipio value="estepa-id41041">Estepa</municipio>
<municipio value="fuentes-de-andalucia-id41042">Fuentes de Andalucía</municipio>
<municipio value="garrobo-el-id41043">Garrobo, El</municipio>
<municipio value="gelves-id41044">Gelves</municipio>
<municipio value="gerena-id41045">Gerena</municipio>
<municipio value="gilena-id41046">Gilena</municipio>
<municipio value="gines-id41047">Gines</municipio>
<municipio value="guadalcanal-id41048">Guadalcanal</municipio>
<municipio value="guillena-id41049">Guillena</municipio>
<municipio value="herrera-id41050">Herrera</municipio>
<municipio value="huevar-del-aljarafe-id41051">Huévar del Aljarafe</municipio>
<municipio value="isla-mayor-id41902">Isla Mayor</municipio>
<municipio value="lantejuela-la-id41052">Lantejuela, La</municipio>
<municipio value="lebrija-id41053">Lebrija</municipio>
<municipio value="lora-de-estepa-id41054">Lora de Estepa</municipio>
<municipio value="lora-del-rio-id41055">Lora del Río</municipio>
<municipio value="luisiana-la-id41056">Luisiana, La</municipio>
<municipio value="madrono-el-id41057">Madroño, El</municipio>
<municipio value="mairena-del-alcor-id41058">Mairena del Alcor</municipio>
<municipio value="mairena-del-aljarafe-id41059">Mairena del Aljarafe</municipio>
<municipio value="marchena-id41060">Marchena</municipio>
<municipio value="marinaleda-id41061">Marinaleda</municipio>
<municipio value="martin-de-la-jara-id41062">Martín de la Jara</municipio>
<municipio value="molares-los-id41063">Molares, Los</municipio>
<municipio value="montellano-id41064">Montellano</municipio>
<municipio value="moron-de-la-frontera-id41065">Morón de la Frontera</municipio>
<municipio value="navas-de-la-concepcion-las-id41066">Navas de la Concepción, Las</municipio>
<municipio value="olivares-id41067">Olivares</municipio>
<municipio value="osuna-id41068">Osuna</municipio>
<municipio value="palacios-y-villafranca-los-id41069">Palacios y Villafranca, Los</municipio>
<municipio value="palomares-del-rio-id41070">Palomares del Río</municipio>
<municipio value="paradas-id41071">Paradas</municipio>
<municipio value="pedrera-id41072">Pedrera</municipio>
<municipio value="pedroso-el-id41073">Pedroso, El</municipio>
<municipio value="penaflor-id41074">Peñaflor</municipio>
<municipio value="pilas-id41075">Pilas</municipio>
<municipio value="pruna-id41076">Pruna</municipio>
<municipio value="puebla-de-cazalla-la-id41077">Puebla de Cazalla, La</municipio>
<municipio value="puebla-de-los-infantes-la-id41078">Puebla de los Infantes, La</municipio>
<municipio value="puebla-del-rio-la-id41079">Puebla del Río, La</municipio>
<municipio value="real-de-la-jara-el-id41080">Real de la Jara, El</municipio>
<municipio value="rinconada-la-id41081">Rinconada, La</municipio>
<municipio value="roda-de-andalucia-la-id41082">Roda de Andalucía, La</municipio>
<municipio value="ronquillo-el-id41083">Ronquillo, El</municipio>
<municipio value="rubio-el-id41084">Rubio, El</municipio>
<municipio value="salteras-id41085">Salteras</municipio>
<municipio value="san-juan-de-aznalfarache-id41086">San Juan de Aznalfarache</municipio>
<municipio value="sanlucar-la-mayor-id41087">Sanlúcar la Mayor</municipio>
<municipio value="san-nicolas-del-puerto-id41088">San Nicolás del Puerto</municipio>
<municipio value="santiponce-id41089">Santiponce</municipio>
<municipio value="saucejo-el-id41090">Saucejo, El</municipio>
<municipio value="sevilla-id41091">Sevilla</municipio>
<municipio value="tocina-id41092">Tocina</municipio>
<municipio value="tomares-id41093">Tomares</municipio>
<municipio value="umbrete-id41094">Umbrete</municipio>
<municipio value="utrera-id41095">Utrera</municipio>
<municipio value="valencina-de-la-concepcion-id41096">Valencina de la Concepción</municipio>
<municipio value="villamanrique-de-la-condesa-id41097">Villamanrique de la Condesa</municipio>
<municipio value="villanueva-del-ariscal-id41098">Villanueva del Ariscal</municipio>
<municipio value="villanueva-del-rio-y-minas-id41099">Villanueva del Río y Minas</municipio>
<municipio value="villanueva-de-san-juan-id41100">Villanueva de San Juan</municipio>
<municipio value="villaverde-del-rio-id41101">Villaverde del Río</municipio>
<municipio value="viso-del-alcor-el-id41102">Viso del Alcor, El</municipio>
</provincia>

BIN
static/css/arrow.png View File

Before After
Width: 11  |  Height: 11  |  Size: 961 B

BIN
static/css/arrow_select.png View File

Before After
Width: 11  |  Height: 11  |  Size: 983 B

BIN
static/css/back.png View File

Before After
Width: 20  |  Height: 152  |  Size: 205 B

BIN
static/css/panel.png View File

Before After
Width: 460  |  Height: 180  |  Size: 16 KiB

BIN
static/css/pattern.png View File

Before After
Width: 10  |  Height: 10  |  Size: 188 B

+ 277
- 0
static/css/style.css View File

@ -0,0 +1,277 @@
*
{ margin: 0;
padding: 0;}
body
{ font-family: 'trebuchet ms', arial, sans-serif;
padding: 0px;
margin: 0px;
font-size: .80em;
background: #E9E4C7 url(pattern.png);
color: #555;}
p
{ margin: 0px;
padding: 0px 0px 16px 0px;
line-height: 1.7em;}
h1, h2, h3, h4, h5, h6
{ color: #362C20;
padding: 0 0 5px 0;}
h1, h4
{ font: normal 175% "century gothic", arial;
margin: 0 0 15px 0;
padding: 15px 20px 5px 0;
color: #444;}
h2, h5
{ padding: 0 0 5px 0;
font: normal 110% arial;
text-transform: uppercase;
letter-spacing: 0;}
h3, h6
{ color: #888;
font: normal 95% arial;
letter-spacing: 0;
padding: 0 0 15px 0;}
h4
{ color: #362C20;}
h5, h6
{ color: #129991;}
img
{ border: 0px;
margin: 0px;
padding: 0px;}
.left
{ float: left;
border-right: 20px solid #FFF;}
.right
{ float: right;
border-left: 20px solid #FFF;}
.center
{ display: block;
text-align: center;
margin: 0 auto;}
blockquote
{ margin: 20px 0px 20px 0px;
padding: 10px 20px 0px 20px;
border: 1px solid #E5E5DB;
background: #F5F5F1;}
ul
{ margin: 2px 0px 18px 16px;
padding: 0px;}
ul li
{ list-style-type: square;
margin: 0px 0px 6px 0px;
padding: 0px;}
ol
{ margin: 8px 0px 0px 24px;
padding: 0px;}
ol li
{ margin: 0px 0px 11px 0px;
padding: 0px;}
a, a:hover
{ outline: none;
border-bottom: 1px dotted;
text-decoration: none;
color: #444;}
a:hover
{ border-bottom: 1px solid;}
#logo, #menubar, #panel, #site_content, #footer
{ margin-left: auto;
margin-right: auto;}
#header
{ background: url(back.png) repeat-x;}
#logo
{ width: 870px;
position: relative;
height: 107px;}
#logo #logo_text
{ position: absolute;
top: 15px;
left: 0;}
#logo h1
{ font: normal 300% "century gothic", arial, sans-serif;
border-bottom: 0;
text-transform: none;
padding: 12px 0 0 26px;
color: #FFF;
margin: 0;}
#menubar
{ width: 879px;
height: 45px;
padding-left: 5px;}
ul#menu{float: right;margin: 0px;}
ul#menu li
{ float: left;
margin: 7px 0 0 0;
padding: 0 0 0 6px;
list-style: none;}
ul#menu li a
{ font-size: 110%;
display: block;
float: left;
height: 25px;
border-bottom: 0;
text-decoration: none;
padding: 8px 32px 5px 26px;
text-align: center;
color: #FFF;
text-transform: uppercase;}
ul#menu li.tab_selected a
{ height: 25px;
padding: 8px 32px 5px 26px;}
ul#menu li.tab_selected
{ margin: 7px 0 0 0;
background: transparent url(tabs.png) no-repeat 0 0px;}
ul#menu li.tab_selected a, ul#menu li.tab_selected a:hover
{ background: url(tabs.png) no-repeat 100% 0px;
color: #000;}
ul#menu li a:hover
{ color: #27C0FF;}
#panel
{ width: 792px;
height: 154px;
border: 15px solid #F3F2EF;}
#site_content
{ width: 875px;
background: #FFF;
overflow: hidden; padding-top: 20px;}
.sidebar
{ float: right;
width: 178px;
padding: 20px 25px 15px 15px;}
.sidebar ul
{ width: 178px;
padding-top: 4px;
margin: 4px 0px 30px 0px;}
.sidebar li
{ list-style: none;
padding: 0px 0px 4px 0px;}
.sidebar li a, .sidebar li a:hover
{ text-decoration: none;
padding: 0px 0px 0px 18px;
display: block;
background: transparent url(arrow.png) no-repeat left center;
color: #555;
border: none;}
.sidebar li a.selected, .sidebar li a:hover, .sidebar li a.selected:hover
{ background: transparent url(arrow_select.png) no-repeat left center;}
#content
{ text-align: left;
width: 597px;
padding: 20px 10px 15px 26px;}
#footer
{ width: 780px;
height: 33px;
padding: 20px 20px 4px 20px;
margin-bottom: 20px;
text-align: center;
background: transparent;
color: #444;
text-transform: uppercase;}
.alternate_colour
{ color: #27C0FF;}
.form_settings
{ margin: 15px 0 0 0;}
.form_settings p
{ padding: 0 0 4px 0;}
.form_settings span
{ float: left;
width: 200px;
text-align: left;}
.form_settings input, .form_settings textarea
{ padding: 4px;
width: 299px;
font: 100% arial;
border: 1px solid #E5E5DB;
background: #FFF;
color: #47433F;}
.form_settings .submit
{ font: 100% arial;
border: 1px solid;
width: 99px;
margin: 0 0 0 210px;
height: 36px;
padding: 2px 0 3px 0;
cursor: pointer;
background: #3B3B3B;
color: #FFF;}
.form_settings textarea, .form_settings select
{ font: 100% arial;
width: 299px;}
.form_settings select
{ width: 304px;}
.form_settings .checkbox
{ margin: 4px 0;
padding: 0;
width: 14px;
border: 0;
background: none;}
.separator
{ width: 100%;
height: 0;
border-top: 1px solid #D9D5CF;
border-bottom: 1px solid #FFF;
margin: 0 0 20px 0;}
table
{ margin: 10px 0 30px 0;}
table tr th, table tr td
{ text-align: left;
background: #3B3B3B;
color: #FFF;
padding: 7px 4px;}
table tr td
{ background: #CCCCCC;
color: #47433F;
border-top: 1px solid #FFF;}

BIN
static/css/tabs.png View File

Before After
Width: 300  |  Height: 43  |  Size: 1.2 KiB

+ 45
- 0
templates/base.html View File

@ -0,0 +1,45 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>{% block title %}{% endblock %}</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="{{url_for("static", filename='css/style.css')}}">
</head>
<body>
<div id="main">
<div id="header">
<div id="logo">
<h1>Curso de <span class="alternate_colour">Flask</span></h1>
</div>
<div id="menubar">
<ul id="menu">
<!-- put class="tab_selected" in the li tag for the selected page - to highlight which page you're on -->
<li class="tab_selected"><a href="/">Home</a></li>
<li><a href="#">Flask</a></li>
<li><a href="#">OpenWebeninars</a></li>
</ul>
</div>
</div>
<div id="site_content">
<div id="panel"><img src="{{url_for("static", filename='css/panel.png')}}" alt="tree tops" /></div>
<div class="sidebar">
<!-- insert your sidebar items here -->
<h1>Blogroll</h1>
<ul>
<li><a href="#">Flask</a></li>
<li><a href="#">Python3</a></li>
<li><a href="#">OpenWeninars</a></li>
</ul>
</div>
<div id="content">
{% block content %}{% endblock %}
</div>
</div>
<div id="footer">Copyright &copy; Company Name. All Rights Reserved. | <a href="http://validator.w3.org/check?uri=referer">XHTML</a> | <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a> | <a href="http://www.dcarter.co.uk">design by dcarter</a></div>
</div>
<div style="text-align: center; font-size: 0.75em;">Diseño descargado desde <a href="http://www.misplantillas.com/">plantillas web gratis</a>.</div></body>
</html>

+ 9
- 0
templates/inicio.html View File

@ -0,0 +1,9 @@
{% extends "base.html" %}
{% block title %}Temperaturas{% endblock %}
{% block content %}
<ul>
{% for m in municipios:%}
<li><a href="/{{m.attrib["value"][-5:]}}">{{m.text}}</a></li>
{% endfor%}
</ul>
{% endblock %}

+ 5
- 0
templates/resultado.html View File

@ -0,0 +1,5 @@
{% extends "base.html" %}
{% block title %}{{titulo}}{% endblock %}
{% block content %}
<h1>{{resultado}}<h1>
{% endblock %}

+ 8
- 0
templates/temperaturas.html View File

@ -0,0 +1,8 @@
{% extends "base.html" %}
{% block title %}Temperaturas{% endblock %}
{% block content %}
<h1>Temperaturas en {{name}}</h1>
<p>Temperatura máxima:<strong>{{max}}ºC</strong></p>
<p>temperatura mínima:<strong>{{min}}ºC</strong></p>
<a href="..">Volver</a>
{% endblock %}

Loading…
Cancel
Save