【问题标题】:In command line, what does "python file.py shell" do?在命令行中,“python file.py shell”有什么作用?
【发布时间】:2020-03-10 18:32:47
【问题描述】:

我遇到了一个 Django 教程,讲师正在运行 python manage.py shell

这会产生:

(env) MBP:Project user$ python3 manage.py shell

Python 3.7.6 (default, Jan  8 2020, 13:42:34)
[Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)

几个问题:

  1. shellpython manage.py shell 中有什么作用?
  2. 上面的(InteractiveConsole)是什么意思?当我在没有shell 的情况下运行python 时,我看不到这一点。我用 Google 搜索了 InteractiveConsole,但无济于事。
  3. manage.py 这里的“正在完成”是什么?是“运行”还是“服务”?

【问题讨论】:

    标签: python django shell


    【解决方案1】:
    1. 当您运行 python manage.py shell 时,您会运行一个 python(或 IPython)解释器,但在其中会加载所有 Django 项目配置,以便您可以针对数据库或 Django 项目中可用的任何其他资源执行命令。
    2. 如果您运行 python manage.py,则只会显示可用于项目中“manage.py”脚本的所有选项(如 runserver 或 migrate)
    3. 在 shell 中,您的项目并未作为 http 服务运行,但您可以执行查询数据库或调用内部函数等操作。

    【讨论】:

    • 3 换 3!非常感谢
    • 如果我可以在这里问,您知道如何在模块中实现相同的功能吗?我想编写一些自动化代码来从 python 模块更新 Django 中的表,即从加载所有 Django 项目配置开始的脚本,然后我可以与数据库进行交互。
    • 在 django 中,这称为自定义命令,文档中有一段关于它的内容:docs.djangoproject.com/en/3.0/howto/custom-management-commands
    猜你喜欢
    • 2014-10-05
    • 2013-11-19
    • 2013-12-30
    • 2020-05-20
    • 2017-10-13
    • 1970-01-01
    • 2017-08-02
    • 2013-04-02
    • 1970-01-01
    相关资源
    最近更新 更多