diff --git a/API/back/.env b/API/back/.env
new file mode 100644
index 0000000..29a9775
--- /dev/null
+++ b/API/back/.env
@@ -0,0 +1,3 @@
+FLASK_APP=run.py
+FLASK_ENV=development
+SECRET_KEY=your-secret-key
diff --git a/API/back/app/__init__.py b/API/back/app/__init__.py
new file mode 100644
index 0000000..8c7ccec
--- /dev/null
+++ b/API/back/app/__init__.py
@@ -0,0 +1,15 @@
+from flask import Flask
+import os
+
+def create_app():
+    app = Flask(__name__, instance_relative_config=True)
+    # 加载默认配置
+    app.config.from_object('config')
+    # 加载实例配置（写在 .gitignore 中的 instance/config.py）
+    app.config.from_pyfile('config.py', silent=True)
+
+    # 注册蓝本或路由
+    from app.routes import main_bp
+    app.register_blueprint(main_bp)
+
+    return app
diff --git a/API/back/app/routes.py b/API/back/app/routes.py
new file mode 100644
index 0000000..c8fd028
--- /dev/null
+++ b/API/back/app/routes.py
@@ -0,0 +1,15 @@
+from flask import Blueprint, jsonify, current_app
+
+main_bp = Blueprint('main', __name__)
+
+@main_bp.route('/')
+def index():
+    return jsonify({"message": "Hello, Flask!"})
+
+@main_bp.route('/show-config')
+def show_config():
+    # 通过 current_app.config['KEY'] 或 get 方法访问配置项
+    return jsonify({
+        "DEBUG": current_app.config.get('DEBUG'),
+        "SECRET_KEY": current_app.config.get('SECRET_KEY')
+    })
diff --git a/API/back/config.py b/API/back/config.py
new file mode 100644
index 0000000..9e867c8
--- /dev/null
+++ b/API/back/config.py
@@ -0,0 +1,6 @@
+import os
+
+# 通用配置
+DEBUG = False
+TESTING = False
+SECRET_KEY = os.environ.get('SECRET_KEY', 'you-will-never-guess')
diff --git a/API/back/instance/config.py b/API/back/instance/config.py
new file mode 100644
index 0000000..c73bf33
--- /dev/null
+++ b/API/back/instance/config.py
@@ -0,0 +1,2 @@
+# 这里可以覆盖 DEBUG、SECRET_KEY 等
+DEBUG = True
diff --git a/API/back/requirements.txt b/API/back/requirements.txt
new file mode 100644
index 0000000..cf81884
--- /dev/null
+++ b/API/back/requirements.txt
@@ -0,0 +1,2 @@
+Flask>=2.0
+python-dotenv
diff --git a/API/back/run.py b/API/back/run.py
new file mode 100644
index 0000000..61b9d38
--- /dev/null
+++ b/API/back/run.py
@@ -0,0 +1,6 @@
+from app import create_app
+
+app = create_app()
+
+if __name__ == '__main__':
+    app.run(host='0.0.0.0', port=5000)
diff --git a/API/back/tests/test_basic.py b/API/back/tests/test_basic.py
new file mode 100644
index 0000000..561052d
--- /dev/null
+++ b/API/back/tests/test_basic.py
@@ -0,0 +1,14 @@
+import pytest
+from app import create_app
+
+@pytest.fixture
+def client():
+    app = create_app()
+    app.config['TESTING'] = True
+    return app.test_client()
+
+def test_index(client):
+    rv = client.get('/')
+    assert rv.status_code == 200
+    json_data = rv.get_json()
+    assert json_data['message'] == 'Hello, Flask!'
