如何使用Django运行脚本?

时间:2018-05-02 17:33:38

标签: php python html django web

所以我已经将GMail API与我的Django项目联系起来了。当我在PyCharm中单独运行quickstart.py时,它运行并且工作正常(这是用GMail登录打开新选项卡的脚本)。

很好但是现在我必须给用户一个机会来做同样的事情。所以我决定创建一个按钮,按下该按钮,quickstart.py将运行,用户将登录。 I tried that by creating an action. Then I tried a usual 'a' tag. And in both cases was error "Not found".  此外,我甚至尝试运行一个php,我执行.py script.Sounds crazy。

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

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

所以又一次又一次:按下按钮 - &gt;运行quickstart.py

1 个答案:

答案 0 :(得分:0)

好像你没有运行 quickstart.py ,但在那里创建了一些function,将from quickstart import your_function导入views.py并调用your_function 1}}来自your_custom_view

像这样的简化逻辑:

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")

让您的Button像链接一样工作(如果您不需要POST请求),请像:

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

注意:这不是正常工作的代码,而是简化的逻辑,您提供的信息很短。

更新1
settings.py

BASE_DIR = os.path.dirname(os.path.abspath(__file__))

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)