Skip to main content
 首页 » 编程设计

python之django 并执行一个单独的 .py 来操作数据库

2025年05月04日13birdshome

我想在某些时期使用 crobjob 在 myproject/myapp 文件夹中执行一个随机的 .py 文件,比如 foo.py

我的应用程序的 model.py 中有这个基本模型:

class Mymodel(models.Model): 
    content = models.TextField() 

假设我的 foo.py 中有这个,我想检查是否有任何 Mymodel 对象具有与 mytext 相同的内容字段,如果没有,则创建一个以 mytext 作为内容的新 Mymodel,如果已经存在则什么都不做.

<do django importings> 
mytext = "something here" 
if Mymodel.filter(content=mytext) == null: 
    newitem = Mymodel(content=mytext) 
    newitem.save() 
else: 
    pass 

所以这是我的问题,我应该做什么 django 导入?另外我如何检查查询是否没有项目(不知道 Mymodel.filter(content=mytext) == null 是否有效。我也不知道这是否是实现我的目标的有效方法Mymodel 的数量会很高。

谢谢

请您参考如下方法:

您在这里有两个不同的问题 - 最好将它们分开。

要运行单独的脚本,您最好创建一个 ./manage.py 命令。参见 the documentation关于如何做到这一点。

对于第二个问题,您提供的代码不是有效的 Python,因为没有“空”值 - 您的意思是 None。然而,即使那样代码也不会工作,因为这不是您使用 Django ORM 编写该查询的方式。你想要这样的东西:

if not MyModel.objects.filter(content=mytext).count(): 

它询问数据库有多少个 content=mytext 的项目,如果没有则返回 True。