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)
В случае сбоя одного из созданий все откатывается назад. Это предотвращает получение наполовину заполненной или поврежденной базы данных.