如何定期运行Python脚本将数据导入Django应用程序?
我有一个脚本,可以扫描电子邮件收件箱中的特定电子邮件。这部分工作正常,我能够获得我感兴趣的数据。现在,我想将这些数据添加到Django应用程序中,该应用程序将用于显示信息 我可以在CRON作业上运行脚本来定期获取新信息,但是如何将这些数据输入到Django应用程序中呢 Django服务器运行在Apache/FastCGI下的Linux机器上,如果这有区别的话 [编辑]-在回答Srikar的问题如何定期运行Python脚本将数据导入Django应用程序?,python,django,data-importer,Python,Django,Data Importer,我有一个脚本,可以扫描电子邮件收件箱中的特定电子邮件。这部分工作正常,我能够获得我感兴趣的数据。现在,我想将这些数据添加到Django应用程序中,该应用程序将用于显示信息 我可以在CRON作业上运行脚本来定期获取新信息,但是如何将这些数据输入到Django应用程序中呢 Django服务器运行在Apache/FastCGI下的Linux机器上,如果这有区别的话 [编辑]-在回答Srikar的问题时,您说的“将数据输入Django应用程序”是什么意思? Django应用程序将负责以方便的形式存储数据
时,您说的“将数据输入Django应用程序”是什么意思?
Django应用程序将负责以方便的形式存储数据,以便通过一系列视图显示数据。因此,该应用程序将包括一个具有适当成员的模型来存储传入数据。我只是不确定你如何连接到Django来创建这些模型对象的新实例,并告诉Django存储它们。当你说“将这些数据导入Django应用程序”时,你到底是什么意思
我猜您正在使用某种数据库(如mysql)。将从cronjob收集的所有数据插入Django应用程序正在访问的相应表中。还要将此cron数据插入到用户正在访问的相同表中。这样,您的更改将立即反映给使用应用程序的用户,因为他们将从同一个表中访问数据。当您说“将数据输入DJango应用程序”时,您的确切意思是什么
我猜您正在使用某种数据库(如mysql)。将从cronjob收集的所有数据插入Django应用程序正在访问的相应表中。还要将此cron数据插入到用户正在访问的相同表中。这样,您的更改将立即反映给使用应用程序的用户,因为他们将从同一个表中访问数据。最佳方法
在django端创建一个视图来处理数据接收,并让脚本在注册到该视图的URL上执行HTTP POST
您也可以从脚本中导入模型等,但我认为这不是一个好主意。最好的方法是什么
在django端创建一个视图来处理数据接收,并让脚本在注册到该视图的URL上执行HTTP POST
您也可以从脚本内部导入模型等,但我认为这不是一个好主意。您可以根据需要编写自定义管理命令来加载数据,并通过cron作业运行该命令。你可以参考
您也可以尝试使用现有的loaddata命令,但它会尝试从应用程序目录中添加的fixture加载数据。您可以根据需要编写自定义管理命令来加载数据,并通过cron作业运行该命令。你可以参考
您也可以尝试使用现有的loaddata命令,但它会尝试从应用程序目录中添加的fixture加载数据。我想这就是您要查找的。我想这就是您要查找的。让您的脚本像这样发送HTTP Post请求。这是图书馆的要求
>>> files = {'report.xls': open('report.xls', 'rb')}
>>> r = requests.post(url, files=files)
>>> r.text
然后在接收端,您可以使用web.py像这样处理信息
x = web.input()
那就用x做你想做的
在POST请求的接收端,导入web并编写处理POST的函数
比如说
def POST(self):
x = web.input()
让脚本像这样发送HTTP Post请求。这是图书馆的要求
>>> files = {'report.xls': open('report.xls', 'rb')}
>>> r = requests.post(url, files=files)
>>> r.text
然后在接收端,您可以使用web.py像这样处理信息
x = web.input()
那就用x做你想做的
在POST请求的接收端,导入web并编写处理POST的函数
比如说
def POST(self):
x = web.input()
如果您不想使用HTTP来回发送消息,您可以让脚本将电子邮件信息写入.txt文件,然后让django应用程序打开该文件并读取它 编辑: 您可以将CRON作业设置为在上午8点读取电子邮件,然后将其写入文本文件info.txt。代码中的
import time
if '9' == time.strftime("%H"):
file = open(info.txt)
info = file.read()
这将在上午9点到上午10点检查文件。如果您想让它只检查一次,只需将分钟数也添加到if语句中。如果您不想使用HTTP来回发送消息,您可以让脚本将电子邮件信息写入.txt文件,然后让django应用程序打开该文件并读取 编辑: 您可以将CRON作业设置为在上午8点读取电子邮件,然后将其写入文本文件info.txt。代码中的
import time
if '9' == time.strftime("%H"):
file = open(info.txt)
info = file.read()
这将在上午9点到上午10点检查文件。如果您希望它只检查一次,只需将分钟数也添加到if语句中。我也做了同样的事情 首先,我的脚本已经在解析电子邮件并将它们存储在数据库中,因此我在settings.py中设置了数据库,并使用
python manage.py inspectdb
基于该数据库创建了一个模型
然后,只需构建一个视图来显示数据库中的信息
如果您的脚本还没有使用db,那么创建一个包含您想要存储的信息的模型,然后强制脚本写入该模型描述的表将非常简单。我也做了同样的事情 首先,我的脚本已经在解析电子邮件并将它们存储在数据库中,因此我在settings.py中设置了数据库,并使用
python manage.py inspectdb
基于该数据库创建了一个模型
然后,只需构建一个视图来显示数据库中的信息
如果您的脚本还没有使用db,那么创建一个包含您想要存储的信息的模型,然后强制脚本写入该模型描述的表就很简单了。暂时忘记这是一个Django应用程序。这只是一堆Python代码 这意味着什么