diff --git a/app/__init__.py b/app/__init__.py index 7e88cd7..52a0038 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -1,5 +1,6 @@ # The purpose of this file is to construct an application package to call factory functions from flask import Flask +from flask_admin import Admin from flask_bootstrap import Bootstrap from flask_mail import Mail from flask_moment import Moment @@ -21,6 +22,7 @@ csrf = CSRFProtect() cache = Cache() debug_toolbar = DebugToolbarExtension() flask_static_digest = FlaskStaticDigest() +admin = Admin(template_mode='bootstrap4') login_manager = LoginManager() login_manager.login_view = 'auth.login' @@ -42,6 +44,8 @@ def create_app(config_name): pagedown.init_app(app) debug_toolbar.init_app(app) flask_static_digest.init_app(app) + admin.init_app(app) + from .main import main as main_blueprint diff --git a/data-dev.sqlite b/data-dev.sqlite index dcce02e..de4d4aa 100644 Binary files a/data-dev.sqlite and b/data-dev.sqlite differ diff --git a/flasky.py b/flasky.py index 2c0b600..de29d2f 100644 --- a/flasky.py +++ b/flasky.py @@ -5,8 +5,10 @@ import time import requests from flask import Response +from flask_admin.contrib.fileadmin import FileAdmin +from flask_admin.contrib.sqla import ModelView from flask_migrate import Migrate -from app import create_app, db +from app import create_app, db, admin from app.models import User, Role, Students, Permission, Post, Comment, Like, Notification, Transaction, Activity # if you want to execute the program @@ -23,23 +25,22 @@ from sdk.geetest_lib import GeetestLib # 发送bypass请求,获取bypass状态并进行缓存 def check_bypass_status(): - while True: - response = "" - params = {"gt": GEETEST_ID} - try: - response = requests.get(url=BYPASS_URL, params=params) - except Exception as e: - print(e) - if response and response.status_code == 200: - print(response.content) - bypass_status_str = response.content.decode("utf-8") - bypass_status = json.loads(bypass_status_str).get("status") - geetest_dict[GEETEST_BYPASS_STATUS_KEY] = bypass_status - else: - bypass_status = "fail" - geetest_dict[GEETEST_BYPASS_STATUS_KEY] = bypass_status - print("bypass状态已经获取并存入redis,当前状态为-{}".format(bypass_status)) - time.sleep(CYCLE_TIME) + response = "" + params = {"gt": GEETEST_ID} + try: + response = requests.get(url=BYPASS_URL, params=params) + except Exception as e: + print(e) + if response and response.status_code == 200: + print(response.content) + bypass_status_str = response.content.decode("utf-8") + bypass_status = json.loads(bypass_status_str).get("status") + geetest_dict[GEETEST_BYPASS_STATUS_KEY] = bypass_status + else: + bypass_status = "fail" + geetest_dict[GEETEST_BYPASS_STATUS_KEY] = bypass_status + print("bypass状态已经获取并存入redis,当前状态为-{}".format(bypass_status)) + time.sleep(CYCLE_TIME) @app.shell_context_processor @@ -88,5 +89,19 @@ def favicon(): thread = threading.Thread(target=check_bypass_status) thread.start() app.secret_key = GeetestLib.VERSION + +# User, Role, Students, Permission, Post, Comment, Like, Notification, Transaction, Activity +admin.add_view(ModelView(User, db.session, name="Users", endpoint="users")) +admin.add_view(ModelView(Role, db.session, name="roles", endpoint="roles")) +admin.add_view(ModelView(Students, db.session, name="Studentss", endpoint="Studentss")) +# admin.add_view(ModelView(Permission, db.session, name="Permissions", endpoint="Permissions")) +admin.add_view(ModelView(Post, db.session, name="Posts", endpoint="Posts")) +admin.add_view(ModelView(Comment, db.session, name="Comments", endpoint="Comments")) +admin.add_view(ModelView(Like, db.session, name="Likes", endpoint="Likes")) +admin.add_view(ModelView(Notification, db.session, name="Notifications", endpoint="Notifications")) +admin.add_view(ModelView(Transaction, db.session, name="Transactions", endpoint="Transactions")) +admin.add_view(ModelView(Activity, db.session, name="Activities", endpoint="Activities")) +admin.add_view(FileAdmin(".")) + if __name__ == '__main__': app.run(debug=True, host='0.0.0.0') diff --git a/requirements.txt b/requirements.txt index b6c87d0..c73832b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -31,4 +31,6 @@ Markdown~=3.2.1 flask_caching flask_debugtoolbar -flask_static_digest \ No newline at end of file +flask_static_digest +flask-admin +wtforms_appengine \ No newline at end of file