Mysql
 sql >> база данни >  >> RDS >> Mysql

Попълнете базата данни на Django

За да го направите по приятен начин, ще ви е необходима комбинация от Factory Boy , Faker и персонализирани команди за управление .

Factory Boy ви позволява да създавате шаблони за създаване на валидни обекти, а Faker генерира фалшиви данни.

Когато инсталирате Factory Boy, pip install factory_boy , получавате и Faker.

Като се има предвид,

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)

Можете да дефинирате фабрика, както следва:

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

След това можете да създадете фалшиви потребители, като извикате UserFactory.create() .

Един от начините да получите вашите 200 фалшиви потребители е да скочите в обвивката, python manage.py shell , и направете:

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

Друг начин, който може да ви даде много повече гъвкавост, е да създадете персонализирана команда за управление.

Например, създайте seed.py (това ще бъде името на командата за управление) в директорията <yourapp>/management/commands (за да бъде открит от Django) със следното:

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

И бихте го стартирали през командния ред с python manage.py seed или python manage.py seed --users 50 например.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Импортирайте голям MySQL .sql файл в Windows със сила

  2. Как да съхраня UTC ISO8601 дата в MySQL база данни?

  3. Django :mysql :1045, Достъпът е отказан за потребителя

  4. Tomcat6 не може да се свърже с MySql (драйверът не е получил никакви пакети от сървъра)

  5. Как да избягам % в Knex, където харесвам заявка?