当前位置: 首页 > 知识库问答 >
问题:

如何从Django shell执行Python脚本?

狄宗清
2023-03-14

我需要从Django shell执行一个Python脚本。我试过:

./manage.py shell << my_script.py

但是没有成功。它只是在等我写些什么。

共有3个答案

袁高明
2023-03-14

对于任何使用Django 1.7的人来说,仅仅导入设置模块似乎是不够的。

经过一番挖掘,我发现了这个堆栈溢出的答案:https://stackoverflow.com/a/23241093

您现在需要:

import os, django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")
django.setup()
# now your code can go here...

如果不执行上述操作,我就会得到一个django.core.exceptions.AppCORstryNoNow错误。

我的脚本文件与django项目位于同一目录中(即,与manage.py位于同一文件夹中)

华升
2023-03-14

不建议您从shell-这样做是因为您不应该真正从django环境执行随机脚本(但是有一些方法可以解决这个问题,请参阅其他答案)。

如果这是一个要运行多次的脚本,最好将其设置为自定义命令ie

 $ ./manage.py my_command

要做到这一点,在app管理命令的子目录中创建一个文件,即

my_app/
    __init__.py
    models.py
    management/
        __init__.py
        commands/
            __init__.py
            my_command.py
    tests.py
    views.py

并在此文件中定义自定义命令(确保文件名是要从/manage.py执行的命令名)

from django.core.management.base import BaseCommand

class Command(BaseCommand):
    def handle(self, **options):
        # now do the things that you want with your models here
宋稳
2023-03-14

<代码>

$ ./manage.py shell < myscript.py

你也可以这样做:

$ ./manage.py shell
...
>>> execfile('myscript.py')

对于python3你需要使用

>>> exec(open('myscript.py').read())
 类似资料:
  • 问题内容: 我能运行Linux命令状或从Java没有问题,但不能得到执行的Python脚本。 这是我的代码: 什么都没有发生。它到达了SEND,但之后就停止了… 我正在尝试执行需要root权限的脚本,因为它使用串行端口。另外,我还必须传递带有一些参数的字符串(数据包)。 问题答案: 您不能像在示例中那样在内部使用PIPE 。PIPE是shell的一部分。 你可以做 将命令放入shell脚本并使用或

  • 问题内容: 我需要从Django Shell执行Python脚本。我试过了: 但这没有用。只是在等我写东西。 问题答案: 该<<部分有误,请<改用: 你也可以这样做: 对于python3,你需要使用

  • 问题内容: 我在树莓派上有一个带有2个按钮(打开和关闭)的PHP网页,“打开”按钮重定向到On.php,“关闭”按钮重定向到Off.php在“ / usr / lib / cgi-bin”中,我有一个python脚本我想执行(script.py),我可以通过在终端上键入以下内容来完美地执行它 如果我从终端执行此操作,它将起作用。 问题是我的“ / var / www”文件夹中的PHP文件(On.p

  • 您好,我正在尝试在apache2服务器上运行Raspberry Pi,使用PHP中的pyautogui库执行Python脚本。从命令行执行Python脚本时,我没有遇到任何问题,但通过PHP的“shell_exec”执行时,我收到以下错误消息: 错误登录apache2: 回溯(最近一次调用):文件“/home/pi/Projects/Python/wakeUp.py”,第2行,在导入pyautog

  • 问题内容: 我需要从我的Python脚本执行该脚本。 可能吗?该脚本会生成一些输出,并写入一些文件。如何访问这些文件?我尝试了子流程调用功能,但没有成功。 应用程序“ bar”还引用了一些库,除了输出外,它还创建了文件“ bar.xml”。我如何访问这些文件?只是通过使用open()? 谢谢, 编辑: Python运行时的错误仅是这一行。 问题答案: 要执行外部程序,请执行以下操作: 是的,假设您

  • 问题内容: 我有一个通过URL执行的php脚本。(例如,www.something.com / myscript?param = xy) 在浏览器中执行此脚本时,它会给出编码结果,即负数或正数。 我想从Java代码(J2EE)执行此脚本并将结果存储在某个对象中。 我正在尝试使用它。我建立了连接,但无法获取结果。我不确定是否完全执行脚本。 问题答案: 该摘录来自官方Java教程(http://jav