1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
import sys
from flask import Flask, g
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext import login
sys.path.append('../..')
from social.apps.flask_app.routes import social_auth
from social.apps.flask_app.template_filters import backends
from social.apps.flask_app.default.models import init_social
# App
app = Flask(__name__)
app.config.from_object('flask_example.settings')
try:
app.config.from_object('flask_example.local_settings')
except ImportError:
pass
# DB
db = SQLAlchemy(app)
app.register_blueprint(social_auth)
init_social(app, db)
login_manager = login.LoginManager()
login_manager.login_view = 'main'
login_manager.login_message = ''
login_manager.init_app(app)
from flask_example import models
from flask_example import routes
@login_manager.user_loader
def load_user(userid):
try:
return models.user.User.query.get(int(userid))
except (TypeError, ValueError):
pass
@app.before_request
def global_user():
g.user = login.current_user
@app.teardown_appcontext
def commit_on_success(error=None):
if error is None:
db.session.commit()
@app.teardown_request
def shutdown_session(exception=None):
db.session.remove()
@app.context_processor
def inject_user():
try:
return {'user': g.user}
except AttributeError:
return {'user': None}
app.context_processor(backends)
|