# http://flask.pocoo.org/
# FLASK_APP=wrfeed FLASK_DEBUG=1 WRFEED_SETTINGS=development.cfg python3 -m flask run -p 5002
# FLASK_APP=wrfeed WRFEED_SETTINGS=production.cfg python3 -m flask run
-from sqlalchemy.engine import create_engine
-from flask import Flask, send_from_directory, abort, g, jsonify
-from wrfeed.controllers.berichte import create_feed
-
+from flask import Flask, send_from_directory, abort
+from flask_sqlalchemy import SQLAlchemy
+from wrfeed.berichte import create_feed
app = Flask(__name__)
app.config.from_envvar('WRFEED_SETTINGS')
-
-
-def get_db():
- """Opens a new database connection if there is none yet for the
- current application context.
- """
- if not hasattr(g, 'db'):
- g.db_engine = create_engine(app.config['DATABASE_URI'])
- g.db = g.db_engine.connect()
- return g.db
-
-
-@app.teardown_appcontext
-def close_db(error):
- """Closes the database again at the end of the request."""
- if hasattr(g, 'db'):
- g.db.close()
+db = SQLAlchemy(app)
+db.reflect()
@app.route("/")
http://127.0.0.1:5000/berichte/alle
http://www.winterrodeln.org/feed/berichte/alle
"""
- return app.response_class(create_feed(get_db(), app.config['FEEDENTRYLIMIT']), mimetype='application/atom+xml')
+ return app.response_class(create_feed(db, app.config['FEEDENTRYLIMIT']), mimetype='application/atom+xml')
@app.route("/berichte/bahn/<bahn>")
http://127.0.0.1:5000/berichte/bahn/kemater_alm
http://www.winterrodeln.org/feed/berichte/bahn/kemater_alm
"""
- return app.response_class(create_feed(get_db(), app.config['FEEDENTRYLIMIT'], page_title=bahn),
+ return app.response_class(create_feed(db, app.config['FEEDENTRYLIMIT'], page_title=bahn),
mimetype='application/atom+xml')
try:
page_ids = [int(page_id) for page_id in page_ids]
except ValueError:
- abort(400) # bad request
- return app.response_class(create_feed(get_db(), app.config['FEEDENTRYLIMIT'], page_ids=page_ids),
+ abort(400) # bad request
+ return app.response_class(create_feed(db, app.config['FEEDENTRYLIMIT'], page_ids=page_ids),
mimetype='application/atom+xml')
"""Handles URLs like
http://www.winterrodeln.org/feed/berichte/region/osttirol
"""
- return app.response_class(create_feed(get_db(), app.config['FEEDENTRYLIMIT'], region_name=region),
+ return app.response_class(create_feed(db, app.config['FEEDENTRYLIMIT'], region_name=region),
mimetype='application/atom+xml')