Python

Как да използвам bulk_create () в Django?

Как да използвам bulk_create () в Django?

Django framework може да се използва за създаване на уеб приложение с база данни чрез писане на скрипт модели.py и мнения.py файлове на приложението Django. Данните могат да бъдат вмъкнати в таблиците на базата данни с помощта на таблото за управление на Django или чрез писане на скрипт в мнения.py файл. Таблото за управление на администрацията на Django изисква вход за удостоверен потребител за достъп до таблиците на базата данни. Единични или множество записи могат да бъдат вмъкнати в таблиците на базата данни, като се напише скрипт. bulk_create () метод е един от начините за вмъкване на множество записи в таблицата на базата данни. Как bulk_create () метод се използва за вмъкване на множество данни в таблица на база данни на Django ще бъде показан в този урок.

Предпоставки:

Преди да практикувате скрипта на този урок, трябва да изпълните следните задачи:

  1. Инсталирайте Django версия 3+ на Ubuntu 20+ (за предпочитане)
  2. Създайте проект на Django
  3. Стартирайте сървъра Django, за да проверите дали сървърът работи правилно или не

Настройване на приложение на Django:

Изпълнете следната команда, за да създадете приложение на Django с име bookapp.

$ python3 управлява.py startapp bookapp

Изпълнете следната команда, за да създадете потребителя за достъп до базата данни Django. Ако вече сте създали такъв, не е необходимо да изпълнявате командата.

$ python3 управлява.py създаваuperuser

Добавете името на приложението в INSTALLED_APP част от настройки.py файл.

INSTALLED_APPS = [
..
"bookapp"
]

Създайте папка с име шаблони вътре в bookapp папка и задайте местоположението на шаблона на приложението в ШАБЛОНИ част от настройки.py файл.

ШАБЛОНИ = [

.. .
'DIRS': ['/ home / fahmida / django_pro / bookapp / templates'],
.. .
,
]

Създайте модел за таблицата на базата данни:

Отвори модели.py файл от bookapp папка и добавете следния скрипт, за да определите структурата на книги таблици. Книга class е дефиниран за създаване на таблица с име книги с заглавие, автор, цена, и публикувано_година полета. Според сценария, заглавие и автор полета ще се съхраняват данни за символи и цена и публикувана_ година полетата ще съхраняват целочислените данни. Ето, заглавие полето се дефинира с уникалния атрибут. Това означава, че стойността на заглавие полето няма да приема дублирани данни.

модели.py

# Модул за импортиране на модели
от django.db модели за импортиране
# Определете класа Book за таблицата с книги
клас Книга (модели.Модел):
заглавие = модели.CharField (max_length = 100, уникален = True)
автор = модели.CharField (max_length = 100)
цена = модели.IntegerField ()
публикувана_ година = модели.IntegerField ()

Стартирайте макемиграции команда за създаване на нова миграция въз основа на промените, направени от моделите.

$ python3 управлява.py makemigrations bookapp

Стартирайте мигрират команда за изпълнение на SQL команди и създаване на всички таблици в базата данни, които са дефинирани в модели.py файл.

$ python3 управлява.py мигрират

Променете съдържанието на администратор.py файл със следното съдържание. Тук класът Book на моделите е регистриран с помощта на регистрирам() метод за показване на книги таблици в таблото за управление на Django.

администратор.py

# Импортиране на администраторски модул
от django.принос вноса администратор
# Импортиране на модел на книга
от .модели внос книга
# Регистрирайте модел на книга
администратор.сайт.регистър (книга)

Създайте файл с шаблон с име DisplayBookList.html вътре в bookapp / templates / папка със следния скрипт. Този скрипт ще покаже всички данни от таблицата с книги в таблична форма. Освен това цикълът for се използва в скрипта за итерация на данните, предадени от мнения.py файл.

DisplayBookList.html



<br>Django bulk_create () Урок<br>



Списък с книги на Python







% за книга в object_list%



% endfor%
документ за самоличностИмеАвторГодина на публикуванеЦена
Книга.документ за самоличност Книга.заглавие Книга.авторКнига.публикувано_година$ книга.цена



Променете съдържанието на мнения.py файл със следния скрипт. Имената на моделите и шаблоните са дефинирани в BulkInsert клас. get_queryset () методът на класа е дефиниран в скрипта за връщане на всички записи от таблицата с книги. От друга страна, Книга.обекти.всичко() метод се използва за връщане на всички записи на таблицата с книги. съществува () метод се използва в скрипта за проверка на книги таблицата е празна или не. Ако този метод се върне Невярно тогава в таблицата с книги ще бъдат вмъкнати пет записа с помощта на bulk_create () метод.

мнения.py

от django.преки пътища за импортиране
# Импортиране на модул ListView
от django.мнения.родово импортиране ListView
# Импортиране на модел на книга
от .модели внос книга
# Определете клас за вмъкване на множество данни
клас BulkInsert (ListView):
# Определете модел
модел = Книга
# Определете шаблон
template_name = 'DisplayBookList.html '
# Прочетете всички съществуващи записи на таблицата с книги
queryset = Книга.обекти.всичко()
# Проверете дали таблицата с книги е празна или не
ако queryset.съществува () == Невярно:
# Поставете едновременно 5 записа в таблицата с книги
Книга.обекти.bulk_create ([
Книга (заглавие = 'Python Crash Course, 2nd Edition', author = 'Eric Matthes', price = 15, published_year = 2019),
Книга (заглавие = 'Автоматизирайте скучните неща с Python, 2-ро издание', автор = 'Al Sweigart', цена = 30,
публикувано_година = 2019),
Книга (заглавие = 'Learning Python', автор = 'Mark Lutz', цена = 15, публикувана_ година = 2019),
Книга (заглавие = 'Head First Python', автор = 'Paul Barry', цена = 45, публикувана_ година = 2016),
Книга (заглавие = 'A Byte of Python', автор = 'Swaroop C H', цена = 15, публикувано_годишно = 2013),
]))
# Върнете всички записи на таблицата с книги
def get_queryset (самостоятелно):
# Задайте набор от заявки по подразбиране
връщане на книга.обекти.всичко()

Променете съдържанието на URL адреси.py файл със следния скрипт. В сценария, „администратор /“ path е дефиниран за отваряне на таблото за управление на Django и пътят 'books /' е дефиниран за извикване на BulkInsert.as_view () метод, който ще вмъкне пет записа в таблицата с книги и ще ги върне във файла на шаблона.

URL адреси.py

# Импортиране на администраторски модул
от django.принос вноса администратор
# Импортиране на път и включване на модул
от django.път за импортиране на URL адреси
от изгледи за импортиране на bookapp
urlpatterns = [
# Определете пътя за администратор
път ('admin /', admin.сайт.URL адреси),
path ('книги /', изгледи.BulkInsert.as_view ()),
]

Отворете таблото за управление на Django, за да проверите дали данните са вмъкнати правилно или не bulk_create () функция.

Вмъкнатите записи на книги таблица ще се покаже в браузъра след изпълнението на следния URL адрес.

http: // localhost: 8000 / книги /

Заключение:

Няколко записа могат да бъдат вмъкнати в таблицата на базата данни на Django по различни начини с помощта на bulk_create (). Един лесен начин за вмъкване на множество записи в таблицата на базата данни с помощта на този метод беше показан в този урок, за да помогне на потребителите на Django да разберат логиката зад процеса.

Vulkan за потребители на Linux
С всяко ново поколение графични карти виждаме, че разработчиците на игри преместват границите на графичната вярност и се приближават една крачка до фо...
OpenTTD срещу Simutrans
Създаването на собствена транспортна симулация може да бъде забавно, релаксиращо и изключително примамливо. Ето защо трябва да сте сигурни, че изпробв...
Урок за OpenTTD
OpenTTD е една от най-популярните бизнес симулационни игри там. В тази игра трябва да създадете прекрасен транспортен бизнес. Въпреки това, ще започне...