Django Lorem Ipsum Generator - Django模型生成(虚假内容数据)的命令插件。
项目描述
Django Lorem Ipsum Generator - Django模型生成(虚假内容数据)的命令插件,并使用Faker Factory包的API Faker模型。
安装
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_digits和decimal_places,并生成唯一的十进制数。
用法
faker.fake_decimal('field_name')
示例
10.7, 13041.00, 200.000.000
- fake_boolean(self)
示例
True, False
- fake_null_boolean(self)
Faker工厂也提供了关于此空布尔值的信息。
示例
None,True,False
- 来自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-slug,hello-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.id,http://dracos-linux.org
- 来自Djipsum
faker.fake_url()
- 来自Faker工厂
faker.fake.url()
- fake_uuid(self)
从 uuid1、uuid3、uuid4 或 uuid5 生成唯一的 uuid。
示例
fb3d6e7f82db47dcaaca46bdd82b24a5,886313e13b8a53729b900c9aee199e5d
- 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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fb2879ac486ded2d92f85573afb1a00bb4776ad0ed5b7a51543116f89b4c1fbd |
|
MD5 | f839ab0c464e9d68ff1cf412759cdf74 |
|
BLAKE2b-256 | 5a0c857ce7e77d602bf1c6d4797363da04aa7a5457031968668e81ad152326ae |