Есть несколько способов сделать это.Наиболее чистый подход заключается в создании новой пользовательской команды , например:
# app/management/commands/updateappdb.py
from django.core.management.base import BaseCommand, CommandError
from polls.models import Question as Poll
class Command(BaseCommand):
help = 'Update DB'
def handle(self, *args, **options):
# Update code here
if not YourModel.objects.exists():
# do something
self.stdout.write(self.style.SUCCESS('Successfully Updated')
Затем вы можете использовать эту команду, например:
python manage.pyupdateappdb && python manager.py runserver
Существует другой подход, который заключается в том, чтобы записать их в urls.py
.Urls.py загружается один раз при запуске сервера.Так что в urls.py вы можете попробовать вот так:
from django.confs.urls.defaults import *
from your_file import data_import_function # which has the data load functionality
urlpatterns = [...]
data_import_function()
Но среди этих двух подходов я предпочитаю первый.Потому что он будет более пригоден для повторного использования, и вы можете интегрировать эту пользовательскую команду с cronjob, если вам нужны периодические обновления.