Django Вставка данных в базу данных через php

До сих пор я всегда создавал структуру и логику своего бэкенда с помощью Django. Но когда я вставлял данные в базу данных, я всегда делал это напрямую через http-запрос к php-скрипту. Когда проекты растут, это становится довольно запутанным. Кроме того, всегда возникали сложности с временными метками из базы данных в бэкенд.

Я хочу устранить все эти недостатки, но не смог найти ни одного хорошего примера, если бы я мог просто сделать запрос к определенному представлению в Django, содержащему всю информацию, которую я хочу поместить в базу данных. Django и база данных находятся на одной машине, но данные, которые вставляются, приходят с разных устройств. Может быть, вы подскажете мне, как искать дальше

Вы можете просто создать скрипт python и запустить его. Предполагая, что у вас есть virtualenv, убедитесь, что он у вас активирован. И поместите это в корень вашего проекта Django.

#!/usr/bin/env python
import os

import django


os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")
django.setup()

# Import after setup, to ensure they are initiliazed properly.
from myapp.models import MyModel, OtherModel


if __name__ == "__main__": 
    # Create your objects.
    obj = MyModel.objects.create(some_value="foo")
    other_obj = OtherModel.objects.create(title="Bar", ref=obj)

Вы также можете использовать транзакцию, чтобы убедиться, что она фиксирует только все или ни одного.

from django.db import transaction

with transaction.atomic():
    obj = MyModel.objects.create(some_value="foo")
    other_obj = OtherModel.objects.create(title="Bar", ref=obj)

В случае сбоя одного из созданий все откатывается назад. Это предотвращает получение наполовину заполненной или поврежденной базы данных.

Вернуться на верх