]> ToastFreeware Gitweb - philipp/winterrodeln/wrfeed.git/blobdiff - wrfeed/wrfeed.py
Set version number to 0.4.1.
[philipp/winterrodeln/wrfeed.git] / wrfeed / wrfeed.py
index 2d707d090225ef9c1a6addea533108a847832934..e55b30738b30326287d69bdb389531c3b909c8ad 100644 (file)
@@ -1,29 +1,14 @@
 # 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 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("/")
@@ -37,7 +22,7 @@ def alle():
     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>")
@@ -46,7 +31,7 @@ def 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')
 
 
@@ -60,8 +45,8 @@ def bahnen(bahnen):
     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')
 
 
@@ -70,5 +55,5 @@ def region(region):
     """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')