You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在CherryPy托管的Django网页中调用Python主程序函数的方案咨询

结论

你当前选择的Python + CherryPy + Django技术栈完全可以实现需求,完全匹配你要求的Web浏览器访问GUI、优先使用Python开发的规则。

实现方案

由于你的Django站点是被CherryPy服务器在同一主进程内托管运行的,两者共享整个程序的内存空间,所以Django视图可以直接导入调用主程序的函数、类方法,不需要额外的跨进程通信组件。
具体操作步骤如下:

  • 在Django对应的views.py文件顶部,直接导入主程序的目标函数即可
    # Django的views.py
    from main import doSomething # main为你的主程序文件名,直接导入目标函数
    
    def doSomething(request, id):
        # 直接调用主程序函数即可
        doSomething(id)
        # 调用完成后返回响应,比如跳转回原页面
        from django.shortcuts import redirect
        return redirect(request.META.get('HTTP_REFERER', '/'))
    
  • 如果要调用主程序的类方法,只需导入主程序中初始化完成的全局类实例,再调用对应方法即可。
注意事项
  • 你使用的SQLite是文件级锁数据库,多线程写入时可能出现锁冲突,建议给主程序的数据库操作逻辑加线程锁,避免出现database is locked类的错误。
  • 当前你用GET请求触发操作,存在刷新页面重复提交、爬虫误触发的风险,建议改成POST请求配合CSRF校验,更符合Web开发规范。

内容的提问来源于stack exchange,提问作者Jguy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:24:04