当前位置:  开发笔记 > 编程语言 > 正文

Django:我如何使用我的模型类与Django外部的数据库进行交互?

如何解决《Django:我如何使用我的模型类与Django外部的数据库进行交互?》经验,为你挑选了3个好方法。

我想编写一个使用Django应用程序模型与我的数据库交互的脚本.但是,我希望能够从命令行或通过cron运行此脚本.我需要导入什么才能允许这样做?



1> Soviut..:

您需要设置Django环境变量.这些告诉Python你的项目在哪里,以及设置模块的名称是什么(设置模块中的项目名称是可选的):

import os

os.environ['PYTHONPATH'] = '/path/to/myproject'
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'

现在您应该能够访问模型:

from myproject.models import MyModel

all_my_models = MyModel.objects.all()


只是为了澄清,而不是尝试设置PYTHONPATH,你想使用sys.path.append("/ usr/local/django /")之类的东西来使用你的项目路径.

2> muhuk..:

首选方法应该是添加一个自定义命令,然后像其他任何django-admin(不要混淆django.contrib.admin)命令一样运行它:

./manage.py mycustomcommand --customarg

只有在自定义命令不可行时才应使用DJANGO_SETTINGS_MODULE.


+1不幸的是,官方文档对实现细节有点了解,并且指的是您确实阅读了源代码.这不是一件坏事,但如果您想快速解决,请查看http://www.b-list.org/weblog/2008/nov/14/management-commands/,其中有一个工作示例.

3> Prairiedogg..:

根据您的特定需求,django-command-extensions可能会为您节省一些时间.要按原样运行任何脚本而不弄乱环境变量,只需键入:

./manage.py runscript path/to/my/script.py

django-command-extensions还具有将脚本自动化为cron作业的命令,这是您提到的您想要做的事情.

如果你是一个更加坚果类型的人,你可以查看这个非常详细的帖子,概述如何使"独立"django脚本从cron作业和诸如此类的东西运行.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有