相关疑难解决方法(0)

如何在django shell中重装模块?

我正在使用Django并一直使用Django shell.令人讨厌的部分是当Django服务器重新加载代码更改时,shell不会,因此每次我对我正在测试的方法进行更改时,我需要退出shell并重新启动它,重新导入所有模块我需要,重新初始化我需要的所有变量等.虽然iPython历史记录在此节省了大量的输入,但这仍然很痛苦.有没有办法让django shell自动重载,就像django开发服务器一样?

我知道reload(),但我导入了很多模型并且通常使用from app.models import *语法,所以reload()没有多大帮助.

python django ipython

73
推荐指数
8
解决办法
3万
查看次数

如何为Django设置Jupyter/IPython笔记本?

我一直在使用这篇文章中描述的方法来设置IPython笔记本,以便与Django很好地配合.该方法的要点是创建一个IPython扩展,它设置DJANGO_SETTINGS_MODULE并在IPython启动时运行django.setup().

扩展的代码是:

def load_ipython_extension(ipython):
    # The `ipython` argument is the currently active `InteractiveShell`
    # instance, which can be used in any way. This allows you to register
    # new magics or aliases, for example.
    try:
        import os
        os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
        import django
        django.setup()
    except ImportError:
        pass
Run Code Online (Sandbox Code Playgroud)

随着最近升级到Jupyter笔记本电脑,这个设置现在已经打破了.我可以通过在笔记本的第一个单元格中添加类似的代码来在Jupyter笔记本中运行Django代码.但是,我无法弄清楚如何让Jupyter自动运行扩展程序,因此我不必为我正在创建的每个笔记本再次执行此操作.

我该怎么办才能让Django和Jupyter玩得很好?

更新: 对于@DarkLight - 我使用Django 1.8.5与Jupyter 1.0.0.我在笔记本中运行的代码是:

import os, sys
sys.path.insert(0, '/path/to/project')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settingsfile")
import django
django.setup()
Run Code Online (Sandbox Code Playgroud)

django ipython jupyter jupyter-notebook

54
推荐指数
5
解决办法
3万
查看次数

标签 统计

django ×2

ipython ×2

jupyter ×1

jupyter-notebook ×1

python ×1