-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
86 lines (62 loc) · 2.09 KB
/
app.py
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/bin/env python3
from __future__ import print_function
from flask import Flask, make_response, send_from_directory
from flask_cors import cross_origin
from flask_jsonrpc import JSONRPC
from flask_sqlalchemy import SQLAlchemy
from flask_redis import FlaskRedis
#from celery import Celery
from datetime import timedelta
import os
import config
from logging_config import logger
config_model = 'development'
if os.environ.get('production', None) is not None:
config_model = 'production'
elif os.environ.get('testing', None) is not None:
config_model = 'testing'
logger.info('current config model is %s' % config_model)
app = Flask(__name__)
app.config.from_object(config.config[config_model])
redis_store = FlaskRedis(app)
@app.route('/')
def hello_world():
return 'Hello World Cup 2018!'
static_dir = os.path.join(os.path.dirname(__file__), 'dist')
@app.route('/world_cup/<path>')
def dist_static_file(path):
return send_from_directory(static_dir, path)
@cross_origin
@app.route('/api', methods=['OPTIONS'])
def options_api():
rst = make_response('')
rst.headers['Access-Control-Allow-Origin'] = '*'
rst.headers['Access-Control-Allow-Methods'] = 'PUT,GET,POST,DELETE,OPTIONS'
allow_headers = config.ALLOWED_CROSS_ORIGIN_HEADERS
rst.headers['Access-Control-Allow-Headers'] = allow_headers
return rst
jsonrpc = JSONRPC(app, '/api', enable_web_browsable_api=True)
db = SQLAlchemy(app)
'''
def make_celery(app):
celery = Celery(app.import_name, broker=app.config['CELERY_BROKER_URL'],
backend=app.config['CELERY_RESULT_BACKEND'])
celery.conf.update(app.config)
TaskBase = celery.Task
class ContextTask(TaskBase):
abstract = True
def __call__(self, *args, **kwargs):
with app.app_context():
return TaskBase.__call__(self, *args, **kwargs)
celery.Task = ContextTask
return celery
celery = make_celery(app)
'''
import routes
try:
db.create_all()
except Exception as e:
logger.error("init db error", e)
pass
if __name__ == '__main__':
app.run(port=5000, host='0.0.0.0', debug=True)