基于 χ(2) 张量的实时公式推导与偏振图演示
| xx | yy | zz | yz | zx | xy | |
|---|---|---|---|---|---|---|
| x | ||||||
| y | ||||||
| z |
为什么需要配置?
浏览器安全策略(CORS)禁止网页直接访问 MP 数据库。使用联网搜索需要以下任一配置:
方案 1:申请 MP API Key(最简单)
1. 访问 MP 官网 注册账号
2. 进入 Dashboard → API Keys → 生成 Key
3. 将 Key 填入下方输入框,点击搜索
⚠️ 注:直接搜索大概率会被 CORS 拦截,此时请使用方案 2 或 3
方案 2:Python 脚本查询(推荐)
安装 Python 后运行脚本,在终端查看结果,手动选择点群
适合:偶尔查询新材料,不想配置代理
from mp_api.client import MPRester
with MPRester("YOUR_API_KEY") as mpr:
docs = mpr.materials.summary.search(
formula="MoS2",
fields=["material_id", "formula_pretty", "symmetry"]
)
for d in docs:
pg = d.symmetry.point_group
print(f"{d.material_id}: {d.formula_pretty}, 点群={pg}")
方案 3:本地代理服务器(一劳永逸)
1. 安装 Python(勾选 Add to PATH)
2. 终端运行:pip install flask requests
3. 保存并运行下方代理脚本,保持终端窗口开启
4. 在"本地代理地址"填入 http://localhost:5000/proxy/mp
from flask import Flask, request, jsonify, make_response
import requests
app = Flask(__name__)
MP_API_KEY = "YOUR_API_KEY"
@app.route('/proxy/mp', methods=['GET', 'OPTIONS'])
def proxy_mp():
if request.method == 'OPTIONS':
response = make_response()
response.headers.add('Access-Control-Allow-Origin', '*')
return response
formula = request.args.get('formula')
url = f"https://api.materialsproject.org/materials/summary/?formula={formula}&_fields=material_id,formula_pretty,symmetry&_limit=20"
r = requests.get(url, headers={"X-API-KEY": MP_API_KEY})
return jsonify(r.json())
if __name__ == '__main__':
app.run(port=5000)