1
我是這個領域的新手,我目前正在嘗試使用cron獲取每小時更新一個sqlite數據庫(用於django)的python腳本。 這裏是腳本Cron腳本運行正常,但沒有更新Django數據庫
import requests, sys, os, django, csv
sys.path.append("\var[...]\django")
os.environ["DJANGO_SETTINGS_MODULE"] = "s.settings"
django.setup()
from health.models import s_model
import datetime
import logging
#################### initialising log file
today = datetime.datetime.now()
logging.basicConfig(filename="/var/[...]/processing.log", level=logging.INFO)
logging.info("\nScript run at " + str(today) + "\n")
################### getting data from csv and saving it to DB
with open('file.csv', 'rU') as csvfile:
try:
csvreader = csv.reader(csvfile, delimiter=',', quotechar='"')
i=0
for row in csvreader:
if(i>0):
people = {}
people['name'] = notNull(row[0].strip())
people['age'] = notNull(row[1].strip())
people = s_model(**people)
people.save()
i=i+1
except Exception:
logging.error("Error processing number for id "+ str(row["Id"]))
return
的削減版本,我有這個文件坐在cron.hourly
#!/bin/bash
/var/[...]myfile.py
我已經檢查:
- 當我檢查的django頁面數據庫中的數據沒有更新。
- 當我從它的文件夾手動運行myfile.py時,它運行良好,數據庫立即更新。
- cron文件末尾有一個換行符。
- 我檢查了權限(cron.hourly文件和myfile.py文件都有+ x權限,並且由root擁有)
- 當我檢查日誌文件(腳本記錄的文件) ,它告訴我腳本每小時運行良好,沒有錯誤。
- 我嘗試過「sudo service apache2 restart」,但頁面仍未更新。
有沒有什麼明顯的我沒有檢查?任何幫助或方向將非常感謝!
謝謝!
是您的應用程序在虛擬環境中嗎? – fixmycode
此外,爲了防止初始化django環境,您可以創建自己的manage.py命令https://docs.djangoproject.com/en/1.11/howto/custom-management-commands/ – SebCorbin
@fixmycode我已經完成了「pip - V「在django文件夾中,它告訴我」從/usr/local/lib/python2.7/dist-packages/pip-9.0.1-py2.7.egg(python 2.7)的pip 9.0.1「是這個正確的方式來檢查虛擬環境? – zibethin