lesscode-flask 0.2.22__tar.gz → 0.2.24__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.22 → lesscode_flask-0.2.24}/PKG-INFO +2 -12
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/__init__.py +1 -1
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/limit/consecutive/consecutive_limiter_handler.py +1 -1
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/limit/consecutive/redis_consecutive_limiter.py +4 -4
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/limit/limit_util.py +3 -2
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/limit/req/rate_limiter_handler.py +1 -1
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/limit/req/redis_rate_limiter.py +1 -1
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/limit/req_count/count_limiter_handler.py +1 -1
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/limit/req_count/redis_count_limiter.py +2 -2
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask.egg-info/PKG-INFO +2 -12
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/README.md +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/app.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/db/__init__.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/db/datasource.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/db/executor.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/export_data/__init__.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/export_data/data_download_handler.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/log/access_log_handler.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/model/access_log.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/model/base_model.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/model/parameterized_query.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/model/resource_param_template.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/model/response_result.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/model/user.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/model/user_limit_policy.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/service/access_log_service.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/service/base_service.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/service/resource_param_template_service.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/setting/__init__.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/setup/__init__.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/signals.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/static/swagger.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/decorator/__init__.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/decorator/cache.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/decorator/sql_injection.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/decorator/swagger.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/dify_utils.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/file/file_exporter.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/file/file_utils.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/fs_util.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/helpers.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/json/NotSortJSONProvider.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/limit/__init__.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/oss/__init__.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/oss/aliyun_oss.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/oss/ks3_oss.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/oss/minio_oss.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/redis/redis_helper.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/request/request.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/swagger/swagger_template.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/swagger/swagger_util.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/task/__init__.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/task/task_helper.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/thread/thread_utils.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/wsgi.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask.egg-info/SOURCES.txt +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask.egg-info/dependency_links.txt +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask.egg-info/requires.txt +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask.egg-info/top_level.txt +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/query_runner/__init__.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/query_runner/clickhouse.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/query_runner/elasticsearch.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/query_runner/kingbase.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/query_runner/mysql.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/query_runner/pg.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/settings/__init__.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/settings/helpers.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/utils/__init__.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/utils/requests_session.py +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/setup.cfg +0 -0
- {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
2
|
Name: lesscode-flask
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.24
|
|
4
4
|
Summary: lesscode-flask 是基于flask的web开发脚手架项目,该项目初衷为简化开发过程,让研发人员更加关注业务。
|
|
5
5
|
Home-page: https://lesscode-flask
|
|
6
6
|
Author: Chao.yy
|
|
@@ -26,16 +26,6 @@ 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
|
|
39
29
|
|
|
40
30
|
# lesscode-flask
|
|
41
31
|
|
|
@@ -37,7 +37,7 @@ class ConsecutiveAccessLimitHandler:
|
|
|
37
37
|
phone_no = current_user.phone_no if current_user.phone_no is not None else "-"
|
|
38
38
|
content.append({"tag": "text","text": f"手机号:{phone_no}\n"})
|
|
39
39
|
content.append({"tag": "text","text": f"用户IP:{request.remote_addr}\n"})
|
|
40
|
-
content.append({"tag": "text","text": f"资源地址:{request.
|
|
40
|
+
content.append({"tag": "text","text": f"资源地址:{request.path}\n"})
|
|
41
41
|
token = request.headers.get("Authorization", "").replace("Bearer ", "")
|
|
42
42
|
if token:
|
|
43
43
|
FS_OAM_SERVICE_URL = current_app.config.get("FS_OAM_SERVICE_URL")
|
|
@@ -18,11 +18,11 @@ class RedisConsecutiveAccessLimiter:
|
|
|
18
18
|
检查是否允许请求(限制用户连续访问同一路径)
|
|
19
19
|
:return: (allowed, current_count)
|
|
20
20
|
"""
|
|
21
|
-
consecutive_limit_count =
|
|
22
|
-
consecutive_limit_enable =
|
|
23
|
-
limit_white_list =
|
|
21
|
+
consecutive_limit_count = user_limit_policy.consecutive_limit_count
|
|
22
|
+
consecutive_limit_enable = user_limit_policy.consecutive_limit_enable
|
|
23
|
+
limit_white_list = user_limit_policy.white_list
|
|
24
24
|
|
|
25
|
-
request_url = request.
|
|
25
|
+
request_url = request.path
|
|
26
26
|
|
|
27
27
|
# 未启用连续访问限制 或者 在白名单中 直接返回允许
|
|
28
28
|
if consecutive_limit_enable == 0 or request_url in limit_white_list:
|
|
@@ -12,7 +12,7 @@ def limit_key_encode() -> str:
|
|
|
12
12
|
limit_key = None
|
|
13
13
|
# 白名单
|
|
14
14
|
limit_white_list = app_config.get("LIMIT_WHITE_LIST", [])
|
|
15
|
-
request_url = request.
|
|
15
|
+
request_url = request.path
|
|
16
16
|
if request_url in limit_white_list:
|
|
17
17
|
# 白名单访问 直接返回None
|
|
18
18
|
return None
|
|
@@ -95,7 +95,8 @@ def get_user_limit_policy():
|
|
|
95
95
|
# 如果没有策略就构建默认策略
|
|
96
96
|
REDIS_RATE_LIMIT_ENABLE = app_config.get("RATE_LIMIT_ENABLE", False)
|
|
97
97
|
REDIS_COUNT_LIMIT_ENABLE = app_config.get("COUNT_LIMIT_ENABLE", False)
|
|
98
|
+
CONSECUTIVE_ACCESS_LIMIT_ENABLE = app_config.get("CONSECUTIVE_ACCESS_LIMIT_ENABLE", False)
|
|
98
99
|
LIMIT_WHITE_LIST = app_config.get("LIMIT_WHITE_LIST", False)
|
|
99
|
-
return UserLimitPolicy(rate_limit_enable=int(REDIS_RATE_LIMIT_ENABLE),
|
|
100
|
+
return UserLimitPolicy(rate_limit_enable=int(REDIS_RATE_LIMIT_ENABLE),consecutive_limit_enable=int(CONSECUTIVE_ACCESS_LIMIT_ENABLE),
|
|
100
101
|
count_limit_enable=int(REDIS_COUNT_LIMIT_ENABLE),white_list=LIMIT_WHITE_LIST)
|
|
101
102
|
|
|
@@ -39,7 +39,7 @@ class RateLimitHandler:
|
|
|
39
39
|
phone_no = current_user.phone_no if current_user.phone_no is not None else "-"
|
|
40
40
|
content.append({"tag": "text","text": f"手机号:{phone_no}\n"})
|
|
41
41
|
content.append({"tag": "text","text": f"用户IP:{request.remote_addr}\n"})
|
|
42
|
-
content.append({"tag": "text","text": f"资源地址:{request.
|
|
42
|
+
content.append({"tag": "text","text": f"资源地址:{request.path}\n"})
|
|
43
43
|
token = request.headers.get("Authorization", "").replace("Bearer ", "")
|
|
44
44
|
if token:
|
|
45
45
|
FS_OAM_SERVICE_URL = current_app.config.get("FS_OAM_SERVICE_URL")
|
{lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/limit/req/redis_rate_limiter.py
RENAMED
|
@@ -30,7 +30,7 @@ class RedisRateLimiter:
|
|
|
30
30
|
time_window: int = user_limit_policy.rate_limit_window_sec
|
|
31
31
|
rate_limit_enable = user_limit_policy.rate_limit_enable
|
|
32
32
|
limit_white_list = user_limit_policy.white_list
|
|
33
|
-
request_url = request.
|
|
33
|
+
request_url = request.path
|
|
34
34
|
# 未启用限流 或者 在白名单中 直接返回允许
|
|
35
35
|
if rate_limit_enable == 0 or request_url in limit_white_list:
|
|
36
36
|
# 白名单访问 直接返回None
|
|
@@ -41,7 +41,7 @@ class CountLimitHandler:
|
|
|
41
41
|
phone_no = current_user.phone_no if current_user.phone_no is not None else "-"
|
|
42
42
|
content.append({"tag": "text","text": f"手机号:{phone_no}\n"})
|
|
43
43
|
content.append({"tag": "text","text": f"用户IP:{request.remote_addr}\n"})
|
|
44
|
-
content.append({"tag": "text","text": f"资源地址:{request.
|
|
44
|
+
content.append({"tag": "text","text": f"资源地址:{request.path}\n"})
|
|
45
45
|
token = request.headers.get("Authorization", "").replace("Bearer ", "")
|
|
46
46
|
if token:
|
|
47
47
|
FS_OAM_SERVICE_URL = current_app.config.get("FS_OAM_SERVICE_URL")
|
|
@@ -24,11 +24,11 @@ class RedisCountLimiter:
|
|
|
24
24
|
count_limit_enable = user_limit_policy.count_limit_enable
|
|
25
25
|
limit_white_list = user_limit_policy.white_list
|
|
26
26
|
cost = 1 # 每次消耗一次数
|
|
27
|
-
request_url = request.
|
|
27
|
+
request_url = request.path
|
|
28
28
|
# 未启用限流 或者 在白名单中 直接返回允许
|
|
29
29
|
if count_limit_enable == 0 or request_url in limit_white_list:
|
|
30
30
|
# 白名单访问 直接返回None
|
|
31
|
-
return True, 0
|
|
31
|
+
return True, 0
|
|
32
32
|
# 限流键
|
|
33
33
|
key = f"limit_count:{limit_key(request_url)}"
|
|
34
34
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
2
|
Name: lesscode-flask
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.24
|
|
4
4
|
Summary: lesscode-flask 是基于flask的web开发脚手架项目,该项目初衷为简化开发过程,让研发人员更加关注业务。
|
|
5
5
|
Home-page: https://lesscode-flask
|
|
6
6
|
Author: Chao.yy
|
|
@@ -26,16 +26,6 @@ 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
|
|
39
29
|
|
|
40
30
|
# lesscode-flask
|
|
41
31
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/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.22 → lesscode_flask-0.2.24}/lesscode_flask/model/resource_param_template.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/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
|
{lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/decorator/sql_injection.py
RENAMED
|
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.22 → lesscode_flask-0.2.24}/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
|
{lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/swagger/swagger_template.py
RENAMED
|
File without changes
|
{lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/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.22 → lesscode_flask-0.2.24}/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
|