sql >> Databasteknik >  >> RDS >> Mysql

Fyll i Django-databas

För att få det gjort på ett bra sätt behöver du en kombination av Factory Boy , Faker och anpassade hanteringskommandon .

Factory Boy låter dig skapa mallar för att producera giltiga objekt och Faker genererar falska data.

När du installerar Factory Boy, pip install factory_boy , du får också Faker.

Givet,

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)

Du kan definiera en fabrik enligt följande:

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')

Sedan kan du skapa falska användare genom att anropa UserFactory.create() .

Ett sätt att få dina 200 falska användare skulle vara att hoppa in i skalet, python manage.py shell , och gör:

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

Ett annat sätt, som kan ge dig mycket mer flexibilitet, är att skapa ett anpassat hanteringskommando.

Skapa till exempel seed.py (detta kommer att vara hanteringskommandots namn) i katalogen <yourapp>/management/commands (för att få det upptäckt av Django) med följande:

# <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()

Och du skulle köra det via kommandoraden med python manage.py seed eller python manage.py seed --users 50 till exempel.



  1. MYSQL välj gemensamma vänner

  2. Ordning av kolumner i ett index med flera kolumner i MySQL

  3. PolyScale.ai – Skala MySQL &PostgreSQL med Global Caching

  4. Oracle INTERSECT Operator förklaras