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が所有しています)
- ログファイル(スクリプトによって記録されたファイル)スクリプトは1時間ごとに正常に動作し、エラーはないことを伝えます。
- "sudo service apache2 restart"を試みましたが、ページはまだ更新されていません。
明らかに何も確認されていませんか?どんな助けや方向性も非常に高く評価されます!
ありがとうございます!
は、仮想環境内のアプリですか? – fixmycode
また、django環境の初期化を防ぐために、独自のmanage.pyコマンドを作成することもできます。https://docs.djangoproject.com/en/1.11/howto/custom-management-commands/ – SebCorbin
@fixmycode "pip - V "をdjangoフォルダに入れ、" 9.0.1.1 /usr/local/lib/python2.7/dist-packages/pip-9.0.1-py2.7.egg(python 2.7) "と言っています仮想環境をチェックする正しい方法? – zibethin