Php 如何使用Django运行脚本?

Php 如何使用Django运行脚本?,php,python,html,django,web,Php,Python,Html,Django,Web,所以我将GMail API连接到我的Django项目中。当我在PyCharm中单独运行quickstart.py时,它运行起来非常完美(这是打开GMail登录新选项卡的脚本) 很好,但是现在我必须给用户一个机会来做同样的事情。所以我决定创建一个按钮,按下该按钮,quickstart.py将运行,用户将登录。 我甚至试着运行一个php,在那里我执行.py脚本。听起来很疯狂 <?php echo exec('/quickstart.py'); ?> 但错误是一样的。我还尝试

所以我将GMail API连接到我的Django项目中。当我在PyCharm中单独运行quickstart.py时,它运行起来非常完美(这是打开GMail登录新选项卡的脚本)

很好,但是现在我必须给用户一个机会来做同样的事情。所以我决定创建一个按钮,按下该按钮,quickstart.py将运行,用户将登录。 我甚至试着运行一个php,在那里我执行.py脚本。听起来很疯狂

    <?php
echo exec('/quickstart.py');
?>

但错误是一样的。我还尝试使用url.py和写路径。我想我不明白什么。请解释一下


因此,再一次且很快地:按下按钮->运行quickstart.py似乎您不必运行quickstart.py,而是在那里创建一些
函数,从quickstart导入
将\u函数导入到
视图.py
中,并从
自定义\u视图调用
您的\u函数
简化逻辑如下:

from quickstart import your_function

def your_custom_view(request):
    button_was_pressed = request.GET.get("button")
    if button_was_pressed:
        your_function()
        return HttpResponse("Button pressed")
    else:
        return HttpResponse("No button pressed")
并使您的
按钮
像链接一样工作(如果您不需要
发布
请求),例如:

<a href="{% url "your_custom_view_url" %}?button=True">Button</a>
views.py

from your_project.settings import BASE_DIR

path_to_json = os.path.join(BASE_DIR, r'client_secret.json')
flow = client.flow_from_clientsecrets(path_to_json, SCOPES)

好的,我下一步做的是:1。(这是谷歌网站的代码,我把它放在一个函数中)2。3.4.结果它找不到这个文件:client_secret.json与GMail API连接,所以我猜它输入了quickstart.py脚本,但失败了。我试图在URL.py中创建.json文件的路径,但IDE甚至没有显示在列表中,好像它不在列表中一样。请尝试更新1-第一步完成-我想您是想编写quickstart.py而不是views.py。所以“os”是红色的,显示为“未解析引用”。我导入了它:它编译时没有任何错误。现在,当我点击按钮时,它显示:我搜索发现一个家伙也有同样的问题,结果他写的不是“client_secret.json”,而是“client_secrets.json”。好吧,在Google的原始代码中,除了调用“clientsecrets”中的client.flow\u外,它没有“s”。我刚才尝试的是:首先,我将.json文件重命名为一个不正确的名称(通过调用refactor->rename)。然后将其重命名为正确的(也可以通过重构->重命名),正如Google编写的那样。我只是想确保在命名变量和函数时没有愚蠢的问题。当然。它只有一行很长的代码,其中包含我的客户机id、项目id、身份验证uri、令牌uri、身份验证提供者url、客户机机密和重定向uri。这个.json文件是在我打开GMail API并将我的项目设置在Google站点之后从Google站点下载的。我正在寻找什么可能是问题,但还没有想法。UPD:我将尝试重新加载这个.json文件。我很快会回复。
from your_project.settings import BASE_DIR

path_to_json = os.path.join(BASE_DIR, r'client_secret.json')
flow = client.flow_from_clientsecrets(path_to_json, SCOPES)