frist commit
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
from flask import Flask, render_template, request, redirect, url_for
|
||||
import models
|
||||
from api import api_bp
|
||||
|
||||
app = Flask(__name__)
|
||||
app.register_blueprint(api_bp)
|
||||
|
||||
models.init_db()
|
||||
|
||||
CIUDADES = [
|
||||
'madrid', 'barcelona', 'valencia', 'sevilla', 'zaragoza',
|
||||
'malaga', 'murcia', 'palma', 'las-palmas', 'bilbao',
|
||||
'alicante', 'cordoba', 'valladolid', 'vigo'
|
||||
]
|
||||
|
||||
|
||||
@app.route('/')
|
||||
def index():
|
||||
return render_template('index.html', modo='inicio', ciudades=CIUDADES)
|
||||
|
||||
|
||||
@app.route('/c/<city>')
|
||||
def ciudad(city):
|
||||
categoria = request.args.get('categoria', '').strip() or None
|
||||
busqueda = request.args.get('q', '').strip() or None
|
||||
anuncios = models.listar_anuncios(categoria=categoria, busqueda=busqueda, ciudad=city)
|
||||
categorias = models.listar_categorias(ciudad=city)
|
||||
return render_template(
|
||||
'index.html',
|
||||
modo='ciudad',
|
||||
city=city,
|
||||
anuncios=anuncios,
|
||||
categorias=categorias,
|
||||
categoria_actual=categoria or '',
|
||||
busqueda_actual=busqueda or ''
|
||||
)
|
||||
|
||||
|
||||
@app.route('/nuevo', methods=['POST'])
|
||||
def nuevo():
|
||||
titulo = request.form.get('titulo', '').strip()
|
||||
contenido = request.form.get('contenido', '').strip()
|
||||
categoria = request.form.get('categoria', 'general').strip()
|
||||
contacto = request.form.get('contacto', 'madrid@craigslist.local').strip()
|
||||
ciudad = request.form.get('ciudad', 'madrid').strip()
|
||||
|
||||
if titulo and contenido:
|
||||
anuncio_id, token = models.crear_anuncio(titulo, contenido, categoria, contacto, ciudad)
|
||||
return redirect(f'/c/{ciudad}?nuevo={anuncio_id}&token={token}')
|
||||
|
||||
return redirect(url_for('index'))
|
||||
|
||||
|
||||
@app.route('/borrar/<int:anuncio_id>', methods=['POST'])
|
||||
def borrar(anuncio_id):
|
||||
token = request.form.get('token', '').strip()
|
||||
models.borrar_anuncio(anuncio_id, token)
|
||||
return redirect(request.referrer or '/')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(host='0.0.0.0', port=5000)
|
||||
Reference in New Issue
Block a user