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 |