-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
executable file
·71 lines (53 loc) · 1.94 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
from flask import Flask
from flask import render_template, redirect, url_for
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager, Shell
from models import db
from routes.user import main as routes_user
from routes.user_api import main as routes_api_user
from routes.weibo import main as routes_weibo
from routes.weibo_api import main as routes_api_weibo
app = Flask(__name__)
db_path = 'Wor.db'
secret_key = 'random_string'
manager = Manager(app)
def register_route(app):
app.register_blueprint(routes_user)
app.register_blueprint(routes_api_user, url_prefix='/api/user')
app.register_blueprint(routes_weibo, url_prefix='/weibo')
app.register_blueprint(routes_api_weibo, url_prefix='/api/weibo')
def configure_app():
app.secret_key = secret_key
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///{}'.format(db_path)
db.init_app(app)
register_route(app)
@app.errorhandler(404)
def error404(e):
return redirect(url_for('user.login_view'))
def configured_app():
configure_app()
return app
@manager.command
def server():
app = configured_app()
config = dict(
debug=True,
host='0.0.0.0',
port=4000,
)
app.run(**config)
def make_shell_context():
from models.user import User, Follow
from models.weibo import Weibo, WCollect, WFavorite, Comment, CFavorite
return dict(app=app, db=db, User=User, Follow=Follow, Comment=Comment, Weibo=Weibo,
WCollect=WCollect, WFavorite=WFavorite, CFavorite=CFavorite)
def configure_manager():
Migrate(app, db)
manager.add_command('db', MigrateCommand)
manager.add_command("shell", Shell(make_context=make_shell_context))
manager.add_command('db', MigrateCommand)
if __name__ == "__main__":
configure_manager()
configure_app()
manager.run()