sql >> Database teknologi >  >> RDS >> Mysql

Udfyld Django-databasen

For at få det gjort på en god måde skal du bruge en kombination af Factory Boy , Faker og tilpassede administrationskommandoer .

Factory Boy giver dig mulighed for at oprette skabeloner til fremstilling af gyldige objekter, og Faker genererer falske data.

Når du installerer Factory Boy, pip install factory_boy , får du også 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 definere en fabrik som følger:

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

Derefter kan du oprette falske brugere ved at kalde UserFactory.create() .

En måde at få dine 200 falske brugere på ville være at hoppe ind i skallen, python manage.py shell , og gør:

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

En anden måde, som kan give dig meget mere fleksibilitet, er at oprette en brugerdefineret administrationskommando.

Opret f.eks. seed.py (dette vil være administrationskommandonavnet) i mappen <yourapp>/management/commands (for at få det opdaget af Django) med følgende:

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

Og du ville køre det via kommandolinjen med python manage.py seed eller python manage.py seed --users 50 for eksempel.



  1. MySQL GUI-programmer

  2. SQL mange til mange vælger

  3. SQL-udvikler vil ikke starte

  4. MySQL - NULL sikker IKKE lige operator