Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wypełnij bazę danych Django

Aby zrobić to w przyjemny sposób, potrzebujesz kombinacji Factory Boy , Podróbka i niestandardowe polecenia zarządzania .

Factory Boy umożliwia tworzenie szablonów do tworzenia prawidłowych obiektów, a Faker generuje fałszywe dane.

Podczas instalacji Factory Boy pip install factory_boy , dostajesz również Fakera.

Biorąc pod uwagę,

from django.db import models


class User(models.Model):
    name = models.CharField(max_length=64)
    address = models.CharField(max_length=128)
    phone_number = models.CharField(max_length=32)

Fabrykę można zdefiniować w następujący sposób:

import factory  
import factory.django

class UserFactory(factory.django.DjangoModelFactory):  
    class Meta:
        model = User

    name = factory.Faker('name')
    address = factory.Faker('address')
    phone_number = factory.Faker('phone_number')

Następnie możesz tworzyć fałszywych użytkowników, wywołując UserFactory.create() .

Jednym ze sposobów na zdobycie 200 fałszywych użytkowników byłoby wskoczenie do powłoki, python manage.py shell i wykonaj:

 >>> # import UserFactory here
 >>> for _ in range(200):
 ...     UserFactory.create()

Innym sposobem, który może zapewnić większą elastyczność, jest utworzenie niestandardowego polecenia zarządzania.

Na przykład utwórz seed.py (będzie to nazwa polecenia zarządzania) w katalogu <yourapp>/management/commands (aby go odkrył Django) z następującymi:

# <yourapp>/management/commands/seed.py
from django.core.management.base import BaseCommand

# import UserFactory here


class Command(BaseCommand):
    help = 'Seeds the database.'

    def add_arguments(self, parser):
        parser.add_argument('--users',
            default=200,
            type=int,
            help='The number of fake users to create.')

    def handle(self, *args, **options):
        for _ in range(options['users']):
            UserFactory.create()

I możesz uruchomić go za pomocą wiersza poleceń za pomocą python manage.py seed lub python manage.py seed --users 50 na przykład.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zezwolić na pusty ciąg dla liczb całkowitych w MySQL?

  2. Jak sprawdzić, czy Ci pomyślnie wstawił dane?

  3. Mysql Popraw wydajność wyszukiwania za pomocą symboli wieloznacznych (%%)

  4. ostrzeżenie php mysql_fetch_assoc

  5. mysqldump:Nie można wykonać. Nieznana tabela „column_statistics” w schemacie information_schema