-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
69 lines (50 loc) · 1.6 KB
/
main.py
File metadata and controls
69 lines (50 loc) · 1.6 KB
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
import os
import re
from flask import Flask
from flask_login import LoginManager
from jinja2 import evalcontextfilter
from markupsafe import escape, Markup
from slugify import slugify
from configuration import LOCAL_DEVELOPMENT_MODE
from user import User
from utils_flask import set_global_config
app = Flask(__name__)
app.secret_key = os.environ.get('SECRET_KEY') or os.urandom(24)
if LOCAL_DEVELOPMENT_MODE:
app.config['LOGIN_DISABLED'] = True
set_global_config(app)
login_manager = LoginManager()
login_manager.init_app(app)
@login_manager.user_loader
def load_user(user_id):
return User.get(user_id)
# These imports have to be here (especially oauth), else import error (circular dependency)
from blueprints.admin import admin
from blueprints.blog import blog
from blueprints.oauth import oauth
app.register_blueprint(blog)
app.register_blueprint(oauth)
app.register_blueprint(admin)
@app.template_filter()
def datetimeformat(value, format='%Y-%m-%d'):
return value.strftime(format)
@app.template_filter()
def get_slug(value):
return slugify(value)
@app.template_filter()
@evalcontextfilter
def nl2br(eval_ctx, value):
_paragraph_re = re.compile(r'(?:\r\n|\r(?!\n)|\n){2,}')
result = u'\n\n'.join(u'<p>%s</p>' % p.replace('\n', '<br>\n')
for p in _paragraph_re.split(escape(value)))
if eval_ctx.autoescape:
result = Markup(result)
return result
if __name__ == '__main__':
ssl_context = None if LOCAL_DEVELOPMENT_MODE else 'adhoc'
app.run(
ssl_context=ssl_context,
host='localhost',
port=8082,
debug=True
)