lesscode-flask 0.2.10__tar.gz → 0.2.12__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/PKG-INFO +12 -2
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/__init__.py +1 -1
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/setting/__init__.py +3 -1
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/decorator/sql_injection.py +1 -1
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/limit/limit_util.py +2 -1
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/limit/req/redis_rate_limiter.py +3 -2
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask.egg-info/PKG-INFO +12 -2
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/README.md +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/app.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/db/__init__.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/db/datasource.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/db/executor.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/export_data/__init__.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/export_data/data_download_handler.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/log/access_log_handler.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/model/access_log.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/model/base_model.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/model/parameterized_query.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/model/resource_param_template.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/model/response_result.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/model/user.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/service/access_log_service.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/service/base_service.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/service/resource_param_template_service.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/setup/__init__.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/signals.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/static/swagger.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/decorator/__init__.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/decorator/cache.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/decorator/swagger.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/dify_utils.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/file/file_exporter.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/file/file_utils.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/fs_util.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/helpers.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/json/NotSortJSONProvider.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/limit/__init__.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/limit/req/rate_limiter_handler.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/limit/req_count/count_limiter_handler.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/limit/req_count/redis_count_limiter.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/oss/__init__.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/oss/aliyun_oss.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/oss/ks3_oss.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/oss/minio_oss.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/redis/redis_helper.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/request/request.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/swagger/swagger_template.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/swagger/swagger_util.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/task/__init__.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/task/task_helper.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/thread/thread_utils.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/wsgi.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask.egg-info/SOURCES.txt +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask.egg-info/dependency_links.txt +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask.egg-info/requires.txt +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask.egg-info/top_level.txt +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/redash/query_runner/__init__.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/redash/query_runner/clickhouse.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/redash/query_runner/elasticsearch.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/redash/query_runner/kingbase.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/redash/query_runner/mysql.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/redash/query_runner/pg.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/redash/settings/__init__.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/redash/settings/helpers.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/redash/utils/__init__.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/redash/utils/requests_session.py +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/setup.cfg +0 -0
- {lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: lesscode-flask
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.12
|
|
4
4
|
Summary: lesscode-flask 是基于flask的web开发脚手架项目,该项目初衷为简化开发过程,让研发人员更加关注业务。
|
|
5
5
|
Home-page: https://lesscode-flask
|
|
6
6
|
Author: Chao.yy
|
|
@@ -26,6 +26,16 @@ Requires-Dist: gevent==25.5.1
|
|
|
26
26
|
Requires-Dist: openpyxl==3.1.5
|
|
27
27
|
Requires-Dist: iputil==0.3.1
|
|
28
28
|
Requires-Dist: phone==0.4.5
|
|
29
|
+
Dynamic: author
|
|
30
|
+
Dynamic: author-email
|
|
31
|
+
Dynamic: classifier
|
|
32
|
+
Dynamic: description
|
|
33
|
+
Dynamic: description-content-type
|
|
34
|
+
Dynamic: home-page
|
|
35
|
+
Dynamic: platform
|
|
36
|
+
Dynamic: requires-dist
|
|
37
|
+
Dynamic: requires-python
|
|
38
|
+
Dynamic: summary
|
|
29
39
|
|
|
30
40
|
# lesscode-flask
|
|
31
41
|
|
|
@@ -94,7 +94,9 @@ class BaseConfig:
|
|
|
94
94
|
RATE_LIMIT_ENABLE: bool = False
|
|
95
95
|
# 触发限流的处理函数
|
|
96
96
|
RATE_LIMIT_HANDLER = RateLimitHandler
|
|
97
|
-
#
|
|
97
|
+
# 限流频率窗口 单位是每秒
|
|
98
|
+
RATE_LIMIT_TIME_WINDOW = 1
|
|
99
|
+
# 限流频率
|
|
98
100
|
RATE_LIMIT_RATE = 1
|
|
99
101
|
# 限流频率允许的突发值 请求速率超过(rate + brust)的请求会被直接拒绝。
|
|
100
102
|
RATE_LIMIT_BURST = 0
|
{lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/decorator/sql_injection.py
RENAMED
|
@@ -37,7 +37,7 @@ def is_sql_injection(value):
|
|
|
37
37
|
r"(?i)\b(select|union|insert|update|delete|drop|alter|create|truncate|exec|execute|sleep)\b", # 关键 SQL 语句
|
|
38
38
|
r"(?i)( or | and )\d+=\d+", # 布尔盲注
|
|
39
39
|
r"(?i)(char|concat|case when)\s*\(", # SQL 函数
|
|
40
|
-
r"(
|
|
40
|
+
r"(--|;)", # 注释符号或语句结束符
|
|
41
41
|
r"(?i)'[\s\d]*or[\s\d]*'", # 典型 SQL 盲注
|
|
42
42
|
]
|
|
43
43
|
|
|
@@ -33,8 +33,9 @@ def get_rate_limit_info() -> str:
|
|
|
33
33
|
"""
|
|
34
34
|
rate = app_config.get("RATE_LIMIT_RATE", 1) # 限流频率 单位是每秒
|
|
35
35
|
burst = app_config.get("RATE_LIMIT_BURST", 0) # 限流频率允许的突发值 请求速率超过(rate + brust)的请求会被直接拒绝。
|
|
36
|
+
time_window = app_config.get("RATE_LIMIT_TIME_WINDOW", 1) # 限流频率允许的突发值 请求速率超过(rate + brust)的请求会被直接拒绝。
|
|
36
37
|
limit_key = limit_key_encode()
|
|
37
|
-
return limit_key, rate, burst
|
|
38
|
+
return limit_key, rate, burst,time_window
|
|
38
39
|
|
|
39
40
|
def get_count_limit_info() -> str:
|
|
40
41
|
"""
|
{lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/limit/req/redis_rate_limiter.py
RENAMED
|
@@ -13,12 +13,13 @@ class RedisRateLimiter:
|
|
|
13
13
|
def __init__(self, redis_key):
|
|
14
14
|
self.redis_key = redis_key
|
|
15
15
|
|
|
16
|
-
def is_limited(self, key: str, rate: float, burst: float) -> tuple:
|
|
16
|
+
def is_limited(self, key: str, rate: float, burst: float,time_window:int=1) -> tuple:
|
|
17
17
|
"""
|
|
18
18
|
检查是否触发限流
|
|
19
19
|
:param key: 限流键
|
|
20
20
|
:param rate: 每秒请求速率
|
|
21
21
|
:param burst: 突发请求数
|
|
22
|
+
:param time_window: 窗口期
|
|
22
23
|
:return: (allowed,delay, excess) 是否触发限流 延迟时间和超出数量
|
|
23
24
|
"""
|
|
24
25
|
if not key: # 没有key表示不验证
|
|
@@ -44,7 +45,7 @@ class RedisRateLimiter:
|
|
|
44
45
|
# 计算当前与最近一次访问的时间差
|
|
45
46
|
elapsed = now - last
|
|
46
47
|
# 根据时间差计算当前的excess值
|
|
47
|
-
excess = max(excess - (rate * abs(elapsed) / 1000) + 1, 0)
|
|
48
|
+
excess = max(excess - (rate * abs(elapsed) / 1000*time_window) + 1, 0)
|
|
48
49
|
else:
|
|
49
50
|
excess = 0
|
|
50
51
|
# 返回延迟时间和超出数量
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: lesscode-flask
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.12
|
|
4
4
|
Summary: lesscode-flask 是基于flask的web开发脚手架项目,该项目初衷为简化开发过程,让研发人员更加关注业务。
|
|
5
5
|
Home-page: https://lesscode-flask
|
|
6
6
|
Author: Chao.yy
|
|
@@ -26,6 +26,16 @@ Requires-Dist: gevent==25.5.1
|
|
|
26
26
|
Requires-Dist: openpyxl==3.1.5
|
|
27
27
|
Requires-Dist: iputil==0.3.1
|
|
28
28
|
Requires-Dist: phone==0.4.5
|
|
29
|
+
Dynamic: author
|
|
30
|
+
Dynamic: author-email
|
|
31
|
+
Dynamic: classifier
|
|
32
|
+
Dynamic: description
|
|
33
|
+
Dynamic: description-content-type
|
|
34
|
+
Dynamic: home-page
|
|
35
|
+
Dynamic: platform
|
|
36
|
+
Dynamic: requires-dist
|
|
37
|
+
Dynamic: requires-python
|
|
38
|
+
Dynamic: summary
|
|
29
39
|
|
|
30
40
|
# lesscode-flask
|
|
31
41
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/export_data/data_download_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/model/resource_param_template.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/service/access_log_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/json/NotSortJSONProvider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/swagger/swagger_template.py
RENAMED
|
File without changes
|
{lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask/utils/swagger/swagger_util.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode_flask-0.2.10 → lesscode_flask-0.2.12}/lesscode_flask.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|