sql >> データベース >  >> RDS >> Mysql

Djangoデータベースにデータを入力します

    それをうまく行うには、 FactoryBoy の組み合わせが必要です。 、 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人の偽のユーザーを取得する1つの方法は、シェル、python manage.py shellにジャンプすることです。 、および実行:

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

    柔軟性を大幅に高めるもう1つの方法は、カスタム管理コマンドを作成することです。

    たとえば、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. 合成データの生成

    2. SQLチュートリアル:SQLを学ぶためのワンストップソリューション

    3. Oracleでのレコードベースの挿入と更新

    4. MySQLでロールを使用して特権を管理する方法