diff --git a/applications/common/utils/upload.py b/applications/common/utils/upload.py index c5d361d..c38242e 100644 --- a/applications/common/utils/upload.py +++ b/applications/common/utils/upload.py @@ -17,7 +17,7 @@ def get_photo(page, limit): def upload_one(photo, mime): filename = photos.save(photo) - file_url = '/_uploads/photos/'+filename + file_url = '/_uploads/photos/' + filename # file_url = photos.url(filename) upload_url = current_app.config.get("UPLOADED_PHOTOS_DEST") size = os.path.getsize(upload_url + '/' + filename) diff --git a/applications/config.py b/applications/config.py index e8e3bdf..b5369f0 100644 --- a/applications/config.py +++ b/applications/config.py @@ -2,13 +2,13 @@ import logging from datetime import timedelta -# from urllib.parse import quote_plus as urlquote - - class BaseConfig: + # 超级管理员账号 SUPERADMIN = 'admin' + # 系统名称 SYSTEM_NAME = 'Pear Admin' + # 主题面板的链接列表配置 SYSTEM_PANEL_LINKS = [ { @@ -28,42 +28,14 @@ class BaseConfig: } ] + # 上传图片目标文件夹 UPLOADED_PHOTOS_DEST = 'static/upload' - UPLOADED_FILES_ALLOW = ['gif', 'jpg'] + UPLOADED_FILES_ALLOW = ['gif', 'jpg', 'jpeg', 'png', 'webp'] UPLOADS_AUTOSERVE = True - # JSON配置 + # JSON 配置 JSON_AS_ASCII = False - SECRET_KEY = "pear-system-flask" - - # mysql 配置 - # MYSQL_USERNAME = "root" - # MYSQL_PASSWORD = "123456" - # MYSQL_HOST = "127.0.0.1" - # MYSQL_PORT = 3306 - # MYSQL_DATABASE = "PearAdminFlask" - - # 数据库的配置信息 - SQLALCHEMY_DATABASE_URI = 'sqlite:///../pear.db' - # SQLALCHEMY_DATABASE_URI = f"mysql+pymysql://{MYSQL_USERNAME}:{urlquote(MYSQL_PASSWORD)}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DATABASE}?charset=utf8mb4" - - # 默认日志等级 - LOG_LEVEL = logging.WARN - """ - flask-mail配置 - """ - MAIL_SERVER = 'smtp.qq.com' - MAIL_USE_TLS = False - MAIL_USE_SSL = True - MAIL_PORT = 465 - MAIL_USERNAME = '123@qq.com' - MAIL_PASSWORD = 'XXXXX' # 生成的授权码 - MAIL_DEFAULT_SENDER = MAIL_USERNAME - - # 插件配置,填写插件的文件名名称,默认不启用插件。 - PLUGIN_ENABLE_FOLDERS = [] - # 配置多个数据库连接的连接串写法示例 # HOSTNAME: 指数据库的IP地址、USERNAME:指数据库登录的用户名、PASSWORD:指数据库登录密码、PORT:指数据库开放的端口、DATABASE:指需要连接的数据库名称 # MSSQL: f"mssql+pymssql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=cp936" @@ -83,13 +55,30 @@ class BaseConfig: # 'testOracle': 'oracle+cx_oracle://test:123456@192.168.1.1:1521/test', # 'testSQLite': 'sqlite:///database.db # } - """ - session - """ + # 数据库的配置信息 + SQLALCHEMY_DATABASE_URI = 'sqlite:///../pear.db' + + # 默认日志等级 + LOG_LEVEL = logging.WARN + + # 发信设置 + MAIL_SERVER = 'smtp.qq.com' + MAIL_USE_TLS = False + MAIL_USE_SSL = True + MAIL_PORT = 465 + MAIL_USERNAME = '123@qq.com' + MAIL_PASSWORD = 'XXXXX' # 生成的授权码 + MAIL_DEFAULT_SENDER = MAIL_USERNAME + + # 插件配置,填写插件的文件名名称,默认不启用插件。 + PLUGIN_ENABLE_FOLDERS = [] + + # Session 设置 PERMANENT_SESSION_LIFETIME = timedelta(days=7) - SESSION_TYPE = "filesystem" # 默认使用文件系统来保存会话 + SESSION_TYPE = "filesystem" # 默认使用文件系统来保存会话 SESSION_PERMANENT = False # 会话是否持久化 SESSION_USE_SIGNER = True # 是否对发送到浏览器上 session 的 cookie 值进行加密 + SECRET_KEY = "pear-system-flask" diff --git a/dockerdata/config.py b/dockerdata/config.py index f5933a6..b5369f0 100644 --- a/dockerdata/config.py +++ b/dockerdata/config.py @@ -1,18 +1,14 @@ import logging -from urllib.parse import quote_plus as urlquote - -from apscheduler.executors.pool import ThreadPoolExecutor -from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore +from datetime import timedelta class BaseConfig: - DEBUG = True - HOST = '127.0.0.1' - PORT = 5000 - - SUPERADMIN = 'system' + # 超级管理员账号 + SUPERADMIN = 'admin' + # 系统名称 SYSTEM_NAME = 'Pear Admin' + # 主题面板的链接列表配置 SYSTEM_PANEL_LINKS = [ { @@ -32,61 +28,18 @@ class BaseConfig: } ] + # 上传图片目标文件夹 UPLOADED_PHOTOS_DEST = 'static/upload' - UPLOADED_FILES_ALLOW = ['gif', 'jpg'] + UPLOADED_FILES_ALLOW = ['gif', 'jpg', 'jpeg', 'png', 'webp'] UPLOADS_AUTOSERVE = True - # JSON配置 + # JSON 配置 JSON_AS_ASCII = False - SECRET_KEY = "pear-system-flask" - - # redis配置 - REDIS_HOST = "127.0.0.1" - REDIS_PORT = 6379 - - # mysql 配置 - MYSQL_USERNAME = "root" - MYSQL_PASSWORD = "123456" - MYSQL_HOST = "172.10.1.31" - MYSQL_PORT = 3306 - MYSQL_DATABASE = "PearAdminFlask" - - # mysql 数据库的配置信息 - SQLALCHEMY_DATABASE_URI = f"mysql+pymysql://{MYSQL_USERNAME}:{urlquote(MYSQL_PASSWORD)}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DATABASE}?charset=utf8mb4" - - # 默认日志等级 - LOG_LEVEL = logging.WARN - # - MAIL_SERVER = 'smtp.qq.com' - MAIL_USE_TLS = False - MAIL_USE_SSL = True - MAIL_PORT = 465 - MAIL_USERNAME = '123@qq.com' - MAIL_PASSWORD = 'XXXXX' # 生成的授权码 - MAIL_DEFAULT_SENDER = MAIL_USERNAME - - # 設置 APSCHEDULER 參數 - SCHEDULER_API_ENABLED = False - SCHEDULER_JOBSTORES: dict = { - 'default': SQLAlchemyJobStore( - url=f'mysql+pymysql://{MYSQL_USERNAME}:{MYSQL_PASSWORD}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DATABASE}') - } - SCHEDULER_EXECUTORS: dict = { - 'default': ThreadPoolExecutor(20) - } - SCHEDULER_JOB_DEFAULTS: dict = { - 'coalesce': False, - 'max_instances': 3 - } - - # 插件配置 - PLUGIN_ENABLE_FOLDERS = ["helloworld"] - # 配置多个数据库连接的连接串写法示例 # HOSTNAME: 指数据库的IP地址、USERNAME:指数据库登录的用户名、PASSWORD:指数据库登录密码、PORT:指数据库开放的端口、DATABASE:指需要连接的数据库名称 # MSSQL: f"mssql+pymssql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=cp936" - # MySQL: f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8" + # MySQL: f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4" # Oracle: f"oracle+cx_oracle://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}" # SQLite "sqlite:/// database.db" # Postgres f"postgresql+psycopg2://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}" @@ -103,3 +56,29 @@ class BaseConfig: # 'testSQLite': 'sqlite:///database.db # } + # 数据库的配置信息 + SQLALCHEMY_DATABASE_URI = 'sqlite:///../pear.db' + + # 默认日志等级 + LOG_LEVEL = logging.WARN + + # 发信设置 + MAIL_SERVER = 'smtp.qq.com' + MAIL_USE_TLS = False + MAIL_USE_SSL = True + MAIL_PORT = 465 + MAIL_USERNAME = '123@qq.com' + MAIL_PASSWORD = 'XXXXX' # 生成的授权码 + MAIL_DEFAULT_SENDER = MAIL_USERNAME + + # 插件配置,填写插件的文件名名称,默认不启用插件。 + PLUGIN_ENABLE_FOLDERS = [] + + # Session 设置 + PERMANENT_SESSION_LIFETIME = timedelta(days=7) + + SESSION_TYPE = "filesystem" # 默认使用文件系统来保存会话 + SESSION_PERMANENT = False # 会话是否持久化 + SESSION_USE_SIGNER = True # 是否对发送到浏览器上 session 的 cookie 值进行加密 + + SECRET_KEY = "pear-system-flask" diff --git a/plugins/helloworld/templates/helloworld_index.html b/plugins/helloworld/templates/helloworld_index.html index 266f34c..6878fa4 100644 --- a/plugins/helloworld/templates/helloworld_index.html +++ b/plugins/helloworld/templates/helloworld_index.html @@ -27,10 +27,10 @@
diff --git a/plugins/replacePage/__init__.py b/plugins/replacePage/__init__.py index 6e4cd7e..b9922f9 100644 --- a/plugins/replacePage/__init__.py +++ b/plugins/replacePage/__init__.py @@ -20,7 +20,7 @@ def event_init(app: Flask): return render_template_string(f.read()) # Index.index 是主页的视图函数对应的名称,原视图函数位于 applications/view/index/index.py - del app.view_functions['Index.index'] # 释放原视图函数 - app.view_functions['Index.index'] = new_index # 替换原视图函数 + del app.view_functions['index.index'] # 释放原视图函数 + app.view_functions['index.index'] = new_index # 替换原视图函数 \ No newline at end of file diff --git a/plugins/replacePage/templates/replacePage_index.html b/plugins/replacePage/templates/replacePage_index.html index b964434..55b7195 100644 --- a/plugins/replacePage/templates/replacePage_index.html +++ b/plugins/replacePage/templates/replacePage_index.html @@ -27,10 +27,10 @@