-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
91 lines (75 loc) · 2.65 KB
/
app.py
File metadata and controls
91 lines (75 loc) · 2.65 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
from flask import Flask, g, render_template
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager
from models import db
# 这里 import 具体的 Model 类是为了给 migrate 用
# 如果不 import 那么无法迁移
# 这是 SQLAlchemy 的机制
from models.todo import Todo
from models.user import User
from models.blog import Blog
from models.tag import Tag
from models.comment import Comment
from models.comment_reply import Reply
from models.message import Message
from routes.user import current_user
from routes.todo import main as routes_todo
from routes.blog import main as routes_blog
from routes.user import main as routes_user
from routes.tag import main as routes_tag
from routes.comment import main as routes_comment
from routes.api import main as routes_api
from routes.upload import main as routes_upload
from routes.message import main as routes_message
# from routes.admin_views import admin
# from routes.chest_views import chest
# from routes.question_views import question
# from routes.topic_views import topic
app = Flask(__name__)
db_path = 'blog.sqlite'
manager = Manager(app)
def configure_app():
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
app.secret_key = 'secret key'
app.config['UPLOAD_FOLDER'] = r'C:\Users\lijunchao\userres'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///{}'.format(db_path)
# app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:gua@localhost/todo'
db.init_app(app)
app.register_blueprint(routes_todo, url_prefix='/todo')
app.register_blueprint(routes_user, url_prefix='/user')
app.register_blueprint(routes_tag, url_prefix='/tag')
app.register_blueprint(routes_comment, url_prefix='/comment')
app.register_blueprint(routes_api, url_prefix='/api')
app.register_blueprint(routes_upload, url_prefix='/upload')
app.register_blueprint(routes_message, url_prefix='/message')
app.register_blueprint(routes_blog)
def configured_app():
configure_app()
return app
@app.before_request
def before_request():
if current_user():
user = current_user()
count = Message.query.filter_by(status=0,user_id=user.id).count()
g.count = count
g.user = user
# 自定义的命令行命令用来运行服务器
@manager.command
def server():
app = configured_app()
config = dict(
debug=True,
host='0.0.0.0',
port=3000,
)
app.run(**config)
def configure_manager():
"""
这个函数用来配置命令行选项
"""
Migrate(app, db)
manager.add_command('db', MigrateCommand)
if __name__ == '__main__':
configure_manager()
configure_app()
manager.run()