新增的 get-calendar-info
API接口用于获取指定日期的黄历信息,支持智能查询:优先从数据库查询,未找到时自动调用外部API获取数据并保存到数据库。
get-calendar-info
GET
/api/data_parse/get-calendar-info
参数名 | 类型 | 必填 | 格式 | 说明 |
---|---|---|---|---|
date | string | 是 | YYYY-MM-DD | 查询日期,如:2025-01-19 |
# 使用curl
curl -X GET "http://localhost:5000/api/data_parse/get-calendar-info?date=2025-01-19"
# 使用浏览器
GET http://localhost:5000/api/data_parse/get-calendar-info?date=2025-01-19
{
"reason": "successed",
"return_code": 200,
"result": {
"id": "1657",
"yangli": "2014-09-11",
"yinli": "甲午(马)年八月十八",
"wuxing": "井泉水 建执位",
"chongsha": "冲兔(己卯)煞东",
"baiji": "乙不栽植千株不长 酉不宴客醉坐颠狂",
"jishen": "官日 六仪 益後 月德合 除神 玉堂 鸣犬",
"yi": "祭祀 出行 扫舍 馀事勿取",
"xiongshen": "月建 小时 土府 月刑 厌对 招摇 五离",
"ji": "诸事不宜"
}
}
参数缺失 (400)
{
"reason": "failed",
"return_code": 400,
"result": null,
"error": "缺少必填参数: date"
}
日期格式错误 (400)
{
"reason": "failed",
"return_code": 400,
"result": null,
"error": "日期格式错误,请使用YYYY-MM-DD格式"
}
数据未找到 (404)
{
"reason": "failed",
"return_code": 404,
"result": null,
"error": "未找到日期 2025-01-19 的黄历信息,且API获取失败"
}
服务器错误 (500)
{
"reason": "failed",
"return_code": 500,
"result": null,
"error": "查询过程中发生错误: 具体错误信息"
}
字段名 | 类型 | 说明 |
---|---|---|
reason | string | 操作结果描述,"successed"表示成功 |
return_code | integer | HTTP状态码,200表示成功 |
result | object | 黄历信息数据对象 |
字段名 | 类型 | 说明 |
---|---|---|
id | string | 记录ID |
yangli | string | 阳历 |
yinli | string | 阴历 |
wuxing | string | 五行 |
chongsha | string | 冲煞 |
baiji | string | 彭祖百忌 |
jishen | string | 吉神宜趋 |
yi | string | 宜 |
xiongshen | string | 凶神宜忌 |
ji | string | 忌 |
字段名 | 类型 | 说明 |
---|---|---|
reason | string | 操作结果描述,"failed"表示失败 |
return_code | integer | HTTP状态码 |
result | null | 失败时为null |
error | string | 错误描述信息 |
calendar_info
表中查找指定日期的记录状态码 | 说明 |
---|---|
200 | 查询成功 |
400 | 请求参数错误 |
404 | 数据未找到 |
500 | 服务器内部错误 |
import requests
# 查询指定日期的黄历信息
url = "http://localhost:5000/api/data_parse/get-calendar-info"
params = {"date": "2025-01-19"}
response = requests.get(url, params=params)
if response.status_code == 200:
data = response.json()
if data['return_code'] == 200:
calendar_info = data['result']
print(f"阳历: {calendar_info['yangli']}")
print(f"阴历: {calendar_info['yinli']}")
print(f"宜: {calendar_info['yi']}")
print(f"忌: {calendar_info['ji']}")
else:
print(f"查询失败: {data['error']}")
else:
print(f"HTTP请求失败: {response.status_code}")
// 查询指定日期的黄历信息
async function getCalendarInfo(date) {
try {
const response = await fetch(`/api/data_parse/get-calendar-info?date=${date}`);
const data = await response.json();
if (data.return_code === 200) {
const calendarInfo = data.result;
console.log(`阳历: ${calendarInfo.yangli}`);
console.log(`阴历: ${calendarInfo.yinli}`);
console.log(`宜: ${calendarInfo.yi}`);
console.log(`忌: ${calendarInfo.ji}`);
return calendarInfo;
} else {
console.error(`查询失败: ${data.error}`);
return null;
}
} catch (error) {
console.error('请求失败:', error);
return null;
}
}
// 使用示例
getCalendarInfo('2025-01-19');
运行以下测试文件验证接口功能:
# 测试API路由接口
python test_calendar_api_route.py
确保安装了以下Python包:
pip install flask requests sqlalchemy