celery,logger,limiter,cache,logo

This commit is contained in:
resonate
2022-01-24 11:58:28 +08:00
parent a3c61d3291
commit 2e6067fd31
15 changed files with 127 additions and 27 deletions
+3
View File
@@ -0,0 +1,3 @@
from cachelib import RedisCache
cache = RedisCache()
+18
View File
@@ -0,0 +1,18 @@
from celery import Celery
from entrance.config import celery as config
from entrance.config.celery import broker_url
celery = Celery(__name__, broker=broker_url)
def register_celery(app):
celery.config_from_object(config)
class ContextTask(celery.Task):
def __call__(self, *args, **kwargs):
with app.app_context():
return self.run(*args, **kwargs)
celery.Task = ContextTask
+7
View File
@@ -0,0 +1,7 @@
from flask_limiter import Limiter
from flask_limiter.util import get_remote_address
limiter = Limiter(
key_func=get_remote_address,
default_limits=["200 per day", "50 per hour"]
)
+55
View File
@@ -0,0 +1,55 @@
from logging.config import dictConfig
def config_logger():
dictConfig(
{
"version": 1,
"disable_existing_loggers": False,
"formatters": {
"simple": {"format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s"}
},
"handlers": {
"console": {
"class": "logging.StreamHandler",
"level": "DEBUG",
"formatter": "simple",
"stream": "ext://sys.stdout",
},
"info_file_handler": {
"class": "logging.handlers.RotatingFileHandler",
"level": "INFO",
"formatter": "simple",
"filename": "logs/info.log",
"maxBytes": 10485760,
"backupCount": 50,
"encoding": "utf8",
},
"error_file_handler": {
"class": "logging.handlers.RotatingFileHandler",
"level": "ERROR",
"formatter": "simple",
"filename": "logs/errors.log",
"maxBytes": 10485760,
"backupCount": 20,
"encoding": "utf8",
},
"debug_file_handler": {
"class": "logging.handlers.RotatingFileHandler",
"level": "DEBUG",
"formatter": "simple",
"filename": "logs/debug.log",
"maxBytes": 10485760,
"backupCount": 50,
"encoding": "utf8",
},
},
"loggers": {
"my_module": {"level": "ERROR", "handlers": ["console"], "propagate": "no"}
},
"root": {
"level": "DEBUG",
"handlers": ["error_file_handler", "debug_file_handler"],
},
}
)
+7
View File
@@ -0,0 +1,7 @@
from flask_migrate import Migrate
from common.extend.orm import db
# from entrance.models import model_lists
migrate = Migrate(db=db, directory='entrance/migrations')
+1 -1
View File
@@ -1,7 +1,7 @@
from flask_mail import Message
# send_mail(subject='title', recipients=['123@qq.com'], content='body')
from entrance.extend.mail import mail
from common.extend.mail import mail
def send_mail(subject, recipients, content):
+17 -5
View File
@@ -1,15 +1,27 @@
from flask import Flask
from entrance import config
import os
from common.extend.logger import config_logger
from entrance.bps import sys, register_parent_bp
from entrance.extensions import init_extensions
def create_app():
config_logger()
app = Flask(__name__)
app.config.from_pyfile('config.py')
app.config.from_pyfile('config/config.py')
register_parent_bp(app)
init_extensions(app)
if os.environ.get('WERKZEUG_RUN_MAIN') == 'true':
print(
"""
___ _ _ _ ___ _ _
| _ \___ __ _ _ _ /_\ __| |_ __ (_)_ _ | __| |__ _ __| |__
| _/ -_) _` | '_| / _ \/ _` | ' \| | ' \ | _|| / _` (_-< / /
|_| \___\__,_|_| /_/ \_\__,_|_|_|_|_|_||_| |_| |_\__,_/__/_\_\\
"""
)
return app
+8
View File
@@ -0,0 +1,8 @@
broker_url = 'redis://127.0.0.1:6379/1'
result_backend = 'rpc://'
task_serializer = 'json'
result_serializer = 'json'
accept_content = ['json']
timezone = 'Asia/Shanghai'
enable_utc = True
-17
View File
@@ -1,17 +0,0 @@
from flask_migrate import Migrate
from entrance.extend.orm import db
# from entrance.models import model_lists
from modules.sys.models.user_role import user_role
from modules.sys.models.role_power import role_power
from modules.sys.models.dict import DictType, DictData
from modules.sys.models.admin_log import AdminLog
from modules.sys.models.photo import Photo
from modules.sys.models.power import Power
from modules.sys.models.role import Role
from modules.sys.models.dept import Dept
from modules.sys.models.user import User
migrate = Migrate(db=db, directory='entrance/migrations')
+6 -2
View File
@@ -1,9 +1,13 @@
from flask import Flask
from entrance.extend.orm import db
from entrance.extend.migrate import migrate
from common.extend.celery import register_celery
from common.extend.limit import limiter
from common.extend.orm import db
from common.extend.migrate import migrate
def init_extensions(app: Flask):
db.init_app(app)
migrate.init_app(app)
register_celery(app)
limiter.init_app(app)
+2 -1
View File
@@ -1 +1,2 @@
Flask-Mail==0.9.1
Flask-Mail==0.9.1
celery==5.2.3
+3 -1
View File
@@ -6,4 +6,6 @@ Flask-Migrate==3.1.0
flask-marshmallow==0.14.0
marshmallow-sqlalchemy==0.27.0
Flask-Login==0.5.0
Pillow==9.0.0
Pillow==9.0.0
flask-limiter-2.1
cachelib-0.6.0