代码之家  ›  专栏  ›  技术社区  ›  Koobz

python shell,日志记录命令,便于重新执行

  •  2
  • Koobz  · 技术社区  · 14 年前

    假设我在我的django应用程序的python shell中执行类似的操作:

    >>>from myapp.models import User
    >>>user = User.objects.get(pk=5)
    >>>groups = user.groups.all()
    

    我想做的是以某种方式隐藏这3个命令,而不离开外壳。目标是,如果我稍后重新启动shell会话,我可以快速恢复类似的环境。

    3 回复  |  直到 14 年前
        2
  •  1
  •   Koobz    14 年前

    >>>from myapp.models import User
    >>>user = User.objects.get(pk=5)
    >>>groups = user.groups.all()
    >>>#Ipython Tricks Follow
    >>>hist #shows you lines in your history
    >>>edit 1:3 # Edit n:m lines above in text editor. I save it as ~/testscript
    >>>run ~/testscript
    

        3
  •  1
  •   Jeff Bauer    14 年前

    hack

    #!/bin/env python
    # based on http://proteus-tech.com/blog/code-garden/bpython-django/
    try:
        from django.core.management import setup_environ
        import settings
        setup_environ(settings)
        print "imported django settings"
        try:
            exec_strs = ["from %s.models import *"%apps for apps in settings.INSTALLED_APPS if apps not in ['django_extensions']]
            for x in exec_strs:
                try:
                    exec(x)
                except:
                    print 'not imported for %s' %x
            print 'imported django models'
        except:
            pass
    except:
        pass
    

    ipython -i $HOME/.pythonrc