当前位置:首页>python>我用 Python 做了一个股票监控面板,跌到目标价自动喊我加仓

我用 Python 做了一个股票监控面板,跌到目标价自动喊我加仓

  • 2026-08-20 09:32:12
我用 Python 做了一个股票监控面板,跌到目标价自动喊我加仓

盯盘这件事

炒股的人有个毛病,总想看盘。早上开盘瞄一眼,中午吃饭瞄一眼,下午快收盘又瞄一眼。看的时候也不干什么,就是盯着那个数字跳。涨了两分钱高兴一下,跌了三毛心想想要不要割肉。

其实我给自己定过规矩:某只股票跌到某个价位才加仓,涨到某个价位就卖掉。但到了那个价位的时候,我往往不在看盘。等晚上复盘才发现,哦,今天跌到了我设的目标价,但没买。

手动盯盘这件事,浪费时间,还容易情绪化操作。所以我写了个小工具,让程序帮我盯。


这个工具能干什么

简单说,三件事:

  1. 实时获取行情:每隔几秒拉取一次A股实时数据

  2. 条件监控:你提前设好条件(跌到XX元、涨幅超过5%、成交量突破XX),满足条件就触发告警

  3. 推送通知:触发告警后,把消息推到你手机上

支持同时监控多只股票,每只股票可以设多个条件。


技术选型

  • akshare:A股数据接口,免费,数据全,不用申请token

  • rich:终端美化库,在命令行里画表格和进度条

  • requests:推送通知用(Server酱或企业微信)

不需要数据库,配置文件用JSON。


环境准备

pip install akshare rich requests

akshare是个宝藏库,A股、港股、美股、基金、期货、期权都能查到。我们只用它获取实时行情。


配置文件

创建一个 watch_config.json,把你关注的股票和告警条件写进去:

{"stocks": [    {"code""sh600519","name""贵州茅台","alerts": [        {"type""price_below""value"1500"msg""茅台跌破1500,考虑加仓"},        {"type""price_above""value"1800"msg""茅台涨过1800,考虑止盈"},        {"type""change_pct_below""value"-3"msg""茅台单日跌幅超3%"}      ]    },    {"code""sz000858","name""五粮液","alerts": [        {"type""price_below""value"130"msg""五粮液跌破130,到加仓位了"},        {"type""volume_above""value"50000000"msg""五粮液成交量放大到5000万手以上"}      ]    },    {"code""sz300750","name""宁德时代","alerts": [        {"type""price_below""value"180"msg""宁德时代跌破180"},        {"type""change_pct_above""value"5"msg""宁德时代单日涨幅超5%,注意追高风险"}      ]    }  ],"check_interval"10,"notify_method""console"}

说明一下各字段:

  • code:股票代码,sh开头是上海,sz开头是深圳

  • alerts.type 支持的条件类型:

    • price_below:价格低于某值

    • price_above:价格高于某值

    • change_pct_below:涨跌幅低于某值(比如-3就是跌超3%)

    • change_pct_above:涨跌幅高于某值

    • volume_above:成交量大于某值

  • check_interval:检查间隔,单位秒

  • notify_method:通知方式,console 只在终端打印,后面会加推送


完整代码

"""股票监控面板实时获取A股行情,满足条件自动告警依赖安装:pip install akshare rich requests"""import jsonimport timefrom datetime import datetimefrom pathlib import Pathimport akshare as akfrom rich.console import Consolefrom rich.table import Tablefrom rich.live import Livefrom rich.panel import Panelfrom rich.layout import Layoutfrom rich.text import Textconsole = Console()# ============ 加载配置 ============CONFIG_FILE = Path("watch_config.json")def load_config():"""读取监控配置"""if not CONFIG_FILE.exists():console.print("[red]配置文件 watch_config.json 不存在[/red]")console.print("请先创建配置文件,参考文章中的示例")return Nonewith open(CONFIG_FILE"r"encoding="utf-8"as f:return json.load(f)# ============ 行情获取 ============def get_realtime_quote(stock_code):"""    获取单只股票的实时行情    stock_code 格式:sh600519 或 sz000858    返回 dict,包含 price, change_pct, volume 等    """try:# akshare 的实时行情接口# 用 spot 接口获取全市场,然后筛选df = ak.stock_zh_a_spot_em()# 从代码中提取纯数字部分pure_code = stock_code[2:]# 找到对应行row = df[df["代码"] == pure_code]if row.empty:return Nonerow = row.iloc[0]return {"code"stock_code,"name"row["名称"],"price"float(row["最新价"]) ifrow["最新价"!"-"else0,"change"float(row["涨跌额"]) ifrow["涨跌额"!"-"else0,"change_pct"float(row["涨跌幅"]) ifrow["涨跌幅"!"-"else0,"volume"float(row["成交量"]) ifrow["成交量"!"-"else0,"amount"float(row["成交额"]) ifrow["成交额"!"-"else0,"high"float(row["最高"]) ifrow["最高"!"-"else0,"low"float(row["最低"]) ifrow["最低"!"-"else0,"open"float(row["今开"]) ifrow["今开"!"-"else0,"prev_close"float(row["昨收"]) ifrow["昨收"!"-"else0,        }except Exception as e:console.print(f"[yellow]获取 {stock_code} 行情失败: {e}[/yellow]")return Nonedef get_all_quotes(stock_codes):"""批量获取所有股票行情(一次API调用)"""try:df = ak.stock_zh_a_spot_em()results = {}for code in stock_codes:pure_code = code[2:]row = df[df["代码"] == pure_code]if not row.empty:row = row.iloc[0]results[code] = {"code"code,"name"row["名称"],"price"float(row["最新价"]) ifrow["最新价"!"-"else0,"change"float(row["涨跌额"]) ifrow["涨跌额"!"-"else0,"change_pct"float(row["涨跌幅"]) ifrow["涨跌幅"!"-"else0,"volume"float(row["成交量"]) ifrow["成交量"!"-"else0,"amount"float(row["成交额"]) ifrow["成交额"!"-"else0,"high"float(row["最高"]) ifrow["最高"!"-"else0,"low"float(row["最低"]) ifrow["最低"!"-"else0,"open"float(row["今开"]) ifrow["今开"!"-"else0,"prev_close"float(row["昨收"]) ifrow["昨收"!"-"else0,                }return resultsexcept Exception as e:console.print(f"[yellow]获取行情失败: {e}[/yellow]")return {}# ============ 告警判断 ============# 记录已触发的告警,避免重复通知triggered_alerts = set()def check_alerts(stock_configquote):"""检查某只股票是否触发了告警条件"""if not quote:return []alerts_fired = []for alert in stock_config.get("alerts", []):alert_type = alert["type"]value = alert["value"]msg = alert["msg"]triggered = Falseif alert_type == "price_below" and quote["price"value:triggered = Trueelif alert_type == "price_above" and quote["price"value:triggered = Trueelif alert_type == "change_pct_below" and quote["change_pct"value:triggered = Trueelif alert_type == "change_pct_above" and quote["change_pct"value:triggered = Trueelif alert_type == "volume_above" and quote["volume"value:triggered = Trueif triggered:# 用 股票代码+条件类型+条件值 作为唯一标识,防止重复告警alert_key = f"{quote['code']}_{alert_type}_{value}"if alert_key not in triggered_alerts:triggered_alerts.add(alert_key)alerts_fired.append({"stock"quote["name"],"price"quote["price"],"msg"msg,"time"datetime.now().strftime("%H:%M:%S"),                })return alerts_fired# ============ 通知推送 ============def notify_console(alert):"""终端打印告警(默认方式)"""console.print(Panel(f"[bold red]{alert['stock']}[/bold red]\n"f"当前价格: {alert['price']}\n"f"{alert['msg']}\n"f"时间: {alert['time']}",title="!! 告警触发 !!",border_style="red",    ))def notify_serverchan(alertsend_key):"""通过 Server酱 推送到微信"""import requestsurl = f"https://sctapi.ftqq.com/{send_key}.send"data = {"title"f"股票告警: {alert['stock']}","desp"f"当前价格: {alert['price']}\n\n{alert['msg']}\n\n时间: {alert['time']}",    }try:resp = requests.post(urldata=datatimeout=10)if resp.json().get("code") == 0:console.print(f"[green]Server酱推送成功[/green]")else:console.print(f"[yellow]Server酱推送失败: {resp.text}[/yellow]")except Exception as e:console.print(f"[yellow]Server酱推送异常: {e}[/yellow]")def send_notification(alertmethod**kwargs):"""根据配置选择通知方式"""if method == "console":notify_console(alert)elif method == "serverchan":notify_serverchan(alertkwargs.get("send_key"""))# 你可以在这里加更多推送方式# ============ 面板渲染 ============def build_dashboard_table(quotesstock_configs):"""构建终端行情面板表格"""table = Table(title="实时行情监控"show_header=Trueheader_style="bold cyan")table.add_column("股票"style="bold"width=12)table.add_column("现价"justify="right"width=10)table.add_column("涨跌额"justify="right"width=10)table.add_column("涨跌幅"justify="right"width=10)table.add_column("最高"justify="right"width=10)table.add_column("最低"justify="right"width=10)table.add_column("成交量(手)"justify="right"width=14)table.add_column("告警数"justify="center"width=8)for config in stock_configs:code = config["code"]q = quotes.get(code)if not q:table.add_row(config["name"], "--""--""--""--""--""--""0")continue# 涨跌幅颜色:红涨绿跌pct_str = f"{q['change_pct']:.2f}%"pct_style = "red"ifq["change_pct">else "green"# 统计该股票的告警条件数alert_count = len(config.get("alerts", []))table.add_row(q["name"],f"{q['price']:.2f}",f"{q['change']:+.2f}",Text(pct_strstyle=pct_style),f"{q['high']:.2f}",f"{q['low']:.2f}",f"{q['volume']:,.0f}",str(alert_count),        )return table# ============ 主循环 ============def main():config = load_config()if not config:returnstock_configs = config["stocks"]interval = config.get("check_interval"10)notify_method = config.get("notify_method""console")stock_codes = [s["code"forsinstock_configs]console.print(Panel(f"监控股票: {', '.join(s['name'] for s in stock_configs)}\n"f"刷新间隔: {interval}秒\n"f"通知方式: {notify_method}\n"f"按 Ctrl+C 退出",title="股票监控面板启动",border_style="blue",    ))try:with Live(console=consolerefresh_per_second=1as live:while True:# 获取行情quotes = get_all_quotes(stock_codes)# 构建面板table = build_dashboard_table(quotesstock_configs)live.update(table)# 检查告警for config_item in stock_configs:code = config_item["code"]quote = quotes.get(code)alerts = check_alerts(config_itemquote)for alert in alerts:send_notification(alertnotify_method)time.sleep(interval)except KeyboardInterrupt:console.print("\n[yellow]监控已停止[/yellow]")if __name__ == "__main__":main()

运行效果

python stock_monitor.py

终端会出现一个实时刷新的表格:

┌──────────────────────────────────────────────────────────────────────┐│                        实时行情监控                                   │├────────────┬──────────┬──────────┬──────────┬──────────┬──────────┬────────────────┬──────────┤│ 股票       │     现价 │    涨跌额 │    涨跌幅 │     最高 │     最低 │   成交量(手)   │ 告警数   │├────────────┼──────────┼──────────┼──────────┼──────────┼──────────┼────────────────┼──────────┤│ 贵州茅台   │ 1523.00  │   +12.50 │  +0.83%  │ 1530.00  │ 1508.00  │     32,456     │    3     ││ 五粮液     │  128.50  │    -2.30 │  -1.76%  │  131.20  │  127.80  │    187,234     │    2     ││ 宁德时代   │  185.60  │    +6.80 │  +3.80%  │  187.40  │  178.50  │    456,789     │    2     │└────────────┴──────────┴──────────┴──────────┴──────────┴──────────┴────────────────┴──────────┘

当五粮液的当前价跌到128.50,低于你设的130目标价,终端会弹出告警面板:

╭────────── !! 告警触发 !! ──────────╮│ 五粮液                              ││ 当前价格: 128.5                     ││ 五粮液跌破130,到加仓位了            ││ 时间: 14:23:15                      │╰────────────────────────────────────╯

如果你配置了Server酱,这条消息还会推送到你的微信。


几个实用技巧

避免重复告警。代码里用了一个 triggered_alerts 集合来记录已触发的条件。同一个条件在一个运行周期内只会通知一次。第二天重新运行脚本会重置。

只在交易时间监控。 你可以在主循环里加个判断,9:30到15:00之间才拉数据,其他时间休眠。这样不浪费资源:

from datetime import datetimenow = datetime.now()hour_min = now.hour*100+now.minute# 9:30 到 11:30,或 13:00 到 15:00is_trading_time = (930<hour_min<1130or (1300<hour_min<1500)

Server酱怎么用。 去 sct.ftqq.com 注册,用微信扫码登录,拿到你的SendKey。把它填到通知函数里就行。免费版每天5条推送,炒股够用了。

更多告警条件。 你可以自己扩展 check_alerts 函数。比如加一个手率超过某值成交额突破某值涨停/跌停。只要 akshare 返回的数据里有这个字段,就能加。


免责声明

这个工具只是一个行情监控和价格提醒工具,不构成任何投资建议。股市有风险,买卖决策请自行判断。

工具能帮你不错过目标价位,但买不买、卖不卖,还是你自己说了算。


最后

盯盘这件事,本质上是一种焦虑。你怕错过机会,怕亏损扩大,怕该买的时候没买。

但程序没有焦虑。它只看数字,到了就喊你,没到就等着。

把盯盘的时间省出来,写写代码,看看书,或者好好吃顿饭。让机器去做机器擅长的事。

下一篇想写什么,评论区告诉我。

“无他,惟手熟尔”!有需要的用起来!关注微信公众号「Nicholas与Pypi」获取更多Python实战!
------加入知识库与更多人一起学习------

https://ima.qq.com/wiki/?shareId=f2628818f0874da17b71ffa0e5e8408114e7dbad46f1745bbd1cc1365277631c

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 15:30:26 HTTP/2.0 GET : https://f.mffb.com.cn/a/511389.html
  2. 运行时间 : 0.270305s [ 吞吐率:3.70req/s ] 内存消耗:4,849.05kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=5e03c5da178a9aca1b8c4c6585dc7f2b
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000996s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001562s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000723s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000728s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001511s ]
  6. SELECT * FROM `set` [ RunTime:0.000604s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001504s ]
  8. SELECT * FROM `article` WHERE `id` = 511389 LIMIT 1 [ RunTime:0.009680s ]
  9. UPDATE `article` SET `lasttime` = 1787297426 WHERE `id` = 511389 [ RunTime:0.038999s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.035124s ]
  11. SELECT * FROM `article` WHERE `id` < 511389 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001291s ]
  12. SELECT * FROM `article` WHERE `id` > 511389 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001206s ]
  13. SELECT * FROM `article` WHERE `id` < 511389 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004551s ]
  14. SELECT * FROM `article` WHERE `id` < 511389 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001952s ]
  15. SELECT * FROM `article` WHERE `id` < 511389 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002322s ]
0.273914s