跳转到主要内容

Django Lorem Ipsum Generator - Django模型生成(虚假内容数据)的命令插件。

项目描述

https://img.shields.io/pypi/v/djipsum.svg?style=flat-square&label=version https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square https://img.shields.io/pypi/pyversions/djipsum.svg?style=flat-square https://img.shields.io/pypi/dm/djipsum.svg?style=flat-square

Django Lorem Ipsum Generator - Django模型生成(虚假内容数据)的命令插件,并使用Faker Factory包的API Faker模型。

http://i.imgur.com/8vg0KoC.png

安装

Djipsum可以直接从PyPI获取。

$ pip install djipsum

*). 不要忘记将djipsum添加到您的INSTALLED_APPS设置中(不需要迁移)。

需求

  • Django>=1.10.1

  • Faker>=0.7.3

用法

usage: djipsum -h [-h] [-dv] [-auto] [-cg CUSTOM_GENERATOR]
                  [--app APP] [--model MODEL] [--max MAX]

To generate awesome lorem ipsum for your model!

optional arguments:
  -h, --help            show this help message and exit
  -dv, --djipsum_version
                        Show djipsum version number and exit.
  -auto, --auto_gen     Automatic generate lorem ipsum from custom generator
                        class.
  -cg, --custom_generator CUSTOM_GENERATOR
                        Custom a function generator (full path) for auto-gen.
  --app APP             The app name.
  --model MODEL         The model class name.
  --max MAX             Maximum generate lorem ipsum.

示例

# Default 10 objects
$ ./manage.py djipsum --app testapp --model TestField

# Custom Maximum objects
$ ./manage.py djipsum --app testapp --model TestField --max=5

API

Djipsum Faker模型提供了来自Faker Factory的额外库,以便更高效地使用。

1. 基本API

>>> from djipsum.faker import FakerModel
>>> faker = FakerModel(app='app_name', model='ModelName')
>>> faker.fake_email() # From Djipsum
'admin@gmail.com'
>>> faker.fake.email() # From Faker Factory
'smithadrian@hotmail.com'
>>>

2. API使用示例

>>> from djipsum.faker import FakerModel
>>> faker = FakerModel(app='app_blog', model='Post')
>>> for _ in range(2):
...     fields = {
...         'user': faker.fake_relations(
...             type='fk',
...             field_name='user'
...         ),
...         'title': faker.fake.text(max_nb_chars=100),
...         'slug': faker.fake.slug(
...             faker.fake.text(max_nb_chars=50)
...         ),
...         'categories': faker.fake_relations(
...             type='m2m',
...             field_name='categories'
...         ),
...         'description': ' '.join(faker.fake.paragraphs()),
...         'created': str(faker.fake.date_time()),
...         'publish': faker.fake_boolean(),
...     }
...     faker.create(fields)
...
<Post: Sit sunt nam aperiam ratione consequatur. Animi cupiditate atque totam.>
<Post: Tempora porro sint quasi nisi totam doloremque repellat. Ducimus nesciunt impedit animi.>
>>>

3. 使用自定义管理命令

这是一个创建自定义特殊faker文件的示例,作为单元测试的工具。例如,我需要将此脚本保存到app_blog.blogfaker.py文件中。

from djipsum.faker import FakerModel


def postfaker(maximum=10):
    """
    Sample custom generator.
    Djipsum already handled with `--max` command.
    But, recomended to set default integer `maximum` like above.
    """
    faker = FakerModel(
        app='app_blog',
        model='Post'
    )
    object_list = [] # for print out after created the objects.

    for _ in range(maximum):
        fields = {
            'user': faker.fake_relations(
                type='fk',
                field_name='user'
            ),
            'title': faker.fake.text(max_nb_chars=100),
            'slug': faker.fake.slug(
                faker.fake.text(max_nb_chars=50)
            ),
            'categories': faker.fake_relations(
                type='m2m',
                field_name='categories'
            ),
            'description': ' '.join(faker.fake.paragraphs()),
            'created': str(faker.fake.date_time()),
            'publish': faker.fake_boolean(),
        }
        instance = faker.create(fields)
        object_list.append(instance)
    return object_list

然后,您也可以通过以下djipsum命令访问它。这将创建2个对象。

./manage.py djipsum --auto_gen --custom_generator=app_blog.blogfaker.postfaker --max=2

# OR

./manage.py djipsum -auto -cg=app_blog.blogfaker.postfaker --max=2

支持的字段

字符类型

整数/浮点类型

关系类型

其他类型

CharField

IntegerField

ForeignKey

BinaryField

TextField

SmallIntegerField

ManyToManyField

DurationField

EmailField

BigIntegerField

OneToOneField(尚未实现)

BooleanField

SlugField

DecimalField

OneToManyField(尚未实现)

空布尔字段

URL字段

正整数字段

UUID字段

浮点字段

通用IP地址字段

正小整数字段

逗号分隔整数字段

日期时间字段

日期字段

时间字段

图片字段

文件字段

文件路径字段(尚未实现)

引用Faker模型字段

fake = <faker.generator.Generator对象>

提供Faker工厂的包。

djipsum_fields(self)

扩展自类DjipsumFields以处理一些特殊字段。

fake_binary(self)

返回随机二进制格式。Faker工厂也提供这方面的二进制。

示例

b"\x00\x01\x02\x03\x04\x05\x06\x07"b"\x0b\x0c\x0e\x0f"等。

  • 来自Djipsum

    faker.fake_binary()

  • 来自Faker工厂

    faker.fake.binary(length=10)

fake_chars_or_choice(self, field_name)

如果field_name有选择项,则返回伪造的字符或选择它。然后,从其中返回随机值。这特别适用于CharField

用法

faker.fake_chars_or_choice('field_name')

字段示例

TYPE_CHOICES = (
  ('project', 'I wanna to talk about project'),
  ('feedback', 'I want to report a bugs or give feedback'),
  ('hello', 'I just want to say hello')
)
type = models.CharField(max_length=200, choices=TYPE_CHOICES)
fake_comma_separated_integer(self)

返回字符串中的唯一整数。这特别适用于CommaSeparatedIntegerField

示例

'6,1,7', '4,5,1,3,2', '2,7,9,3,5,4,1'

fake_decimal(self, field_name)

验证字段是否有max_digitsdecimal_places,并生成唯一的十进制数。

用法

faker.fake_decimal('field_name')

示例

10.7, 13041.00, 200.000.000

fake_boolean(self)

示例

True, False

fake_null_boolean(self)

Faker工厂也提供了关于此空布尔值的信息。

示例

NoneTrueFalse

  • 来自Djipsum

    faker.fake_null_boolean()

  • 来自Faker工厂

    faker.fake.null_boolean()

fake_float(self)

示例

0.69, 20.55, 98.12

fake_email(self)

Faker工厂也提供了关于此电子邮件的信息。

示例

'agus@python.web.id''sample@gmail.com''hello@yahoo.com'

  • 来自Djipsum

    faker.fake_email()

  • 来自Faker工厂

    faker.fake.email()

fake_file(self)

返回文件的字符串名称。Faker工厂也提供了关于此文件的信息。

示例

'file.zip''awesomefile.tar.gz''samplefile.docx''djipsum.pdf'

  • 来自Djipsum

    faker.fake_file()

  • 来自Faker工厂

    faker.fake.file_name()

fake_image(self)

返回图片的字符串名称。

示例

'avatar.jpg''djipsum.jpeg''sampleimage.png''awesome_django.gif'

fake_ipaddress(self)

Faker工厂也提供了关于此IP地址的信息,例如ipv4,ipv6等。

示例

'192.168.1.1''66.249.65.54''255.255.255.0''2001:db8:a0b:12f0::1'

  • 来自Djipsum

    faker.fake_ipaddress()

  • 来自Faker工厂

    faker.fake.ipv4()faker.fake.ipv6()

fake_slug(self)

可选的唯一slug,使用uuid处理unique=True。Faker工厂也提供了关于此slug的信息。

示例

this-my-slughello-world-93daf03138dsa0

  • 来自Djipsum

    faker.fake_slug()

  • 来自Faker工厂

    faker.fake.slug(faker.fake.text(max_nb_chars=50))

fake_paragraphs(self)

TextField生成段落。Faker工厂也提供了关于这些段落的信息。

示例

  • 来自Djipsum

    faker.fake_paragraphs()

  • 来自Faker工厂

    ' '.join(faker.fake.paragraphs())

fake_url(self)

URLField生成url。Faker工厂也提供了关于此url的信息。

示例

https://python.web.idhttp://dracos-linux.org

  • 来自Djipsum

    faker.fake_url()

  • 来自Faker工厂

    faker.fake.url()

fake_uuid(self)

uuid1uuid3uuid4uuid5 生成唯一的 uuid。

示例

fb3d6e7f82db47dcaaca46bdd82b24a5886313e13b8a53729b900c9aee199e5d

fake_relations(self, type, field_name)

返回对象/关系的字典以处理关系。

示例

  • 外键

    faker.fake_relations(type='fk', field_name='author')

  • 多对多

    faker.fake_relations(type='m2m', field_name='categories')

许可

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

djipsum-1.1.5.tar.gz (15.0 kB 查看哈希值)

上传时间

由...