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

编写Django脚本

  •  2
  • pistacchio  · 技术社区  · 15 年前

    利用django设置、模型、实用程序等编写python脚本(不在django服务器应用程序中运行)从而能够通过批处理过程在应用程序数据库上操作的最佳方法是什么?

    编辑

    我需要在另一台服务器中使用它来对数据库进行相当复杂的操作,所以像定制AppCommands或调用一个djando页面这样的解决方案不会真正起作用。

    谢谢

    3 回复  |  直到 11 年前
        1
  •  6
  •   Mark van Lent    15 年前

    一种方法是创建 own management command . 然后您可以从crontab中执行类似的操作:

    python manage.py my_command
    

    另一种方法是确保Django、Django项目以及第三方应用程序(如果需要)位于您的pythonpath上。然后,您可以使用几行代码访问数据库和ORM:

    from django.core.management import setup_environ
    from my_project import settings
    setup_environ(settings)
    

    现在,您可以这样做:

    from my_app.models import MyModel
    all_objects = MyModel.objects.all()
    
        2
  •  2
  •   eliasj    11 年前

    setup_environ 自1.4起被弃用。您可以这样使用:

    import os
    os.environ['DJANGO_SETTINGS_MODULE'] = 'yoursite.settings'
    import django
    django.setup()
    

    然后你可以使用你的模型。

    from my_app.models import MyModel
    all_objects = MyModel.objects.all()
    
        3
  •  0
  •   Josiah    15 年前

    我将研究如何创建自定义管理命令。Django自定义appcommands的文档可在以下位置找到: http://docs.djangoproject.com/en/dev/howto/custom-management-commands/

    请注意,这适用于Django 1.2及更高版本。

    创建后,可以通过调用来运行app命令(假设它保存在myapp/management/command s/example.py中)

    manage.py example