pythonflaskmock数据_mimesis,一个生成各类虚拟数据的(Mock用)Python库

Mimesis is a fast and easy to use library for Python, which helps generate mock data for a variety of purposes (see "Data providers") in a variety of languages (see "Locales"). This data can be particularly useful during software development and testing. The library was written with the use of tools from the standard Python library, and therefore, it does not have any side dependencies.

Documentation

Mimesis is very simple to use, and the below examples should help you get started. Complete documentation for Mimesis is available here.

Installation

To install mimesis, simply:

➜ ~ pip install mimesis

Also you can install it manually:

(env) ➜ python3 setup.py install

Basic Usage

As we said above, this library is really easy to use:

>>> import mimesis

>>> person = mimesis.Personal(locale='en')

>>> person.full_name(gender='female')

'Antonetta Garrison'

>>> person.occupation()

'Backend Developer'

Locales

You can specify a locale when creating providers and they will return data that is appropriate for the language or country associated with that locale:

>>> from mimesis import Personal

>>> de = Personal('de')

>>> ic = Personal('is')

>>> de.full_name()

'Sabrina Gutermuth'

>>> ic.full_name()

'Rósa Þórlindsdóttir'

Mimesis currently includes support for 30 different locales. See details for more information.

Flag

Code

Name

Native name

1

🇨🇿

cs

Czech

Česky

2

🇩🇰

da

Danish

Dansk

3

🇩🇪

de

German

Deutsch

4

🇦🇹

de-at

Austrian German

Deutsch

5

🇨🇭

de-ch

Swiss German

Deutsch

6

🇺🇸

en

English

English

7

🇦🇺

en-au

Australian English

English

8

🇨🇦

en-ca

Canadian English

English

9

🇬🇧

en-gb

British English

English

10

🇪🇸

es

Spanish

Español

11

🇲🇽

es-mx

Mexican Spanish

Español

12

🇮🇷

fa

Farsi

فارسی

13

🇫🇮

fi

Finnish

Suomi

14

🇫🇷

fr

French

Français

15

🇭🇺

hu

Hungarian

Magyar

16

🇮🇸

is

Icelandic

Íslenska

17

🇮🇹

it

Italian

Italiano

18

🇯🇵

ja

Japanese

日本語

19

🇰🇷

ko

Korean

한국어

20

🇳🇱

nl

Dutch

Nederlands

21

🇧🇪

nl-be

Belgium Dutch

Nederlands

22

🇳🇴

no

Norwegian

Norsk

23

🇵🇱

pl

Polish

Polski

24

🇵🇹

pt

Portuguese

Português

25

🇧🇷

pt-br

Brazilian Portuguese

Português Brasileiro

26

🇷🇺

ru

Russian

Русский

27

🇸🇪

sv

Swedish

Svenska

28

🇹🇷

tr

Turkish

Türkçe

29

🇺🇦

uk

Ukrainian

Український

30

🇨🇳

zh

Chinese

汉语

When you only need to generate data for a single locale, use the Generic() provider, and you can access all providers of Mimesis from one object.

>>> import mimesis

>>> g = mimesis.Generic('es')

>>> g.datetime.month()

'Agosto'

>>> g.food.fruit()

'Limón'

Data providers

Mimesis support over twenty different data providers available, which can produce data related to food, people, computer hardware, transportation, addresses, and more. See details for more information.

Provider

Description

1

Address

Address data (street name, street suffix etc.)

2

Business

Business data (company, company_type, copyright etc.)

3

Code

Codes (ISBN, EAN, IMEI etc.).

4

ClothingSizes

Clothing sizes (international sizes, european etc.)

5

Datetime

Datetime (day_of_week, month, year etc.)

6

Development

Data for developers (version, programming language etc.)

7

File

File data (extension etc.)

8

Food

Information on food (vegetables, fruits, measurements etc.)

9

Games

Games data (game, score, pegi_rating etc.)

10

Personal

Personal data (name, surname, age, email etc.)

11

Text

Text data (sentence, title etc.)

12

Transport

Dummy data about transport (truck model, car etc.)

13

Science

Scientific data (scientist, math_formula etc.)

14

Structured

Structured data (html, css etc.)

15

Internet

Internet data (facebook, twitter etc.)

16

Hardware

The data about the hardware (resolution, cpu, graphics etc.)

17

Numbers

Numerical data (floats, primes, digit etc.)

18

Path

Provides methods and property for generate paths.

19

UnitSytem

Provides names of unit systems in international format

20

Generic

All at once

21

Cryptographic

Cryptographic data

Advantages

Mimesis offers a number of advantages over other similar libraries, such as Faker:

Performance. Mimesis is significantly faster than other similar libraries.

Completeness. Mimesis strives to provide many detailed providers that offer a variety of data generators.

Simplicity. Mimesis does not require any modules other than the Python standard library.

See here for an example of how we compare performance with other libraries.

Integration with Web Application Frameworks

You can use Mimesis during development and testing of applications built on a variety of frameworks. Here is an example of integration with a Flask application:

class Patient(db.Model):

id = db.Column(db.Integer, primary_key=True)

full_name = db.Column(db.String(100))

blood_type = db.Column(db.String(64))

def __init__(self, **kwargs):

super(Patient, self).__init__(**kwargs)

@staticmethod

def populate(count=500, locale=None):

import mimesis

person = mimesis.Personal(locale=locale)

for _ in range(count):

patient = Patient(

full_name=person.full_name('female'),

blood_type=person.blood_type(),

)

db.session.add(patient)

try:

db.session.commit()

except IntegrityError:

db.session.rollback()

Just run shell mode and do following:

>>> Patient().populate(count=1000, locale='en')

Generate data by schema

Mimesis support generating data by schema:

>>> from mimesis.schema import Schema

>>> schema = Schema('en')

>>> schema.load(schema={

... "id": "cryptographic.uuid",

... "name": "text.word",

... "version": "development.version",

... "owner": {

... "email": "personal.email",

... "token": "cryptographic.token",

... "creator": "personal.full_name"

... }

... }).create(iterations=2)

>>> # or you can load data from json file:

>>> schema.load(path='schema.json').create(iterations=2)

Result:

[

{

"id": "790cce21-5f75-2652-2ee2-f9d90a26c43d",

"name": "container",

"owner": {

"email": "anjelica8481@outlook.com",

"token": "0bf924125640c46aad2a860f40ec4b7f33a516c497957abd70375c548ed56978",

"creator": "Ileen Ellis"

},

"version": "4.11.6"

},

...

]

Custom Providers

You also can add custom provider to Generic(), using add_provider() method:

>>> import mimesis

>>> generic = mimesis.Generic('en')

>>> class SomeProvider(object):

... class Meta:

... name = "some_provider"

...

... def hello(self):

... return "Hello!"

>>> class Another(object):

... def bye(self):

... return "Bye!"

>>> generic.add_provider(SomeProvider)

>>> generic.add_provider(Another)

>>> generic.some_provider.hi()

'Hello!'

>>> generic.another.bye()

'Bye!'

or multiple custom providers using method add_providers():

>>> generic.add_providers(SomeProvider, Another)

Builtins specific data providers

Some countries have data types specific to that country. For example social security numbers (SSN) in the United States of America (en), and cadastro de pessoas físicas (CPF) in Brazil (pt-br). If you would like to use these country-specific providers, then you must import them explicitly:

>>> from mimesis import Generic

>>> from mimesis.builtins import BrazilSpecProvider

>>> generic = Generic('pt-br')

>>> generic.add_provider(BrazilSpecProvider)

>>> generic.brazil_provider.cpf()

'696.441.186-00'

Decorators

If your locale belongs to the family of Cyrillic languages, but you need latinized locale-specific data, then you can use special decorator which help you romanize your data. At this moment it's works only for Russian and Ukrainian:

>>> from mimesis.decorators import romanized

>>> @romanized('ru')

... def russian_name():

... return 'Вероника Денисова'

>>> russian_name()

'Veronika Denisova'

Disclaimer

The authors assume no responsibility for how you use this library data generated by it. This library is designed only for developers with good intentions. Do not use the data generated with Mimesis for illegal purposes.

Contributing

Your contributions are always welcome! Please take a look at the contribution guidelines first. Here you can look at list of our contributors.

License

Mimesis is licensed under the MIT License. See LICENSE for more information.

删除之类操作需要全选功能,方便选择 public class MainActivity extends Activity { private ListView lv; private MyAdapter mAdapter; private ArrayList list; private Button bt_selectall; // private Button bt_cancel; // private Button bt_deselectall; private int checkNum; // 记录选中的条目数量 private TextView tv_show;// 用于显示选中的条目数量 /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* 实例化各个控件 */ lv = (ListView) findViewById(R.id.lv); bt_selectall = (Button) findViewById(R.id.bt_selectall); // bt_cancel = (Button) findViewById(R.id.bt_cancelselectall); // bt_deselectall = (Button) findViewById(R.id.bt_deselectall); tv_show = (TextView) findViewById(R.id.tv); list = new ArrayList(); // 为Adapter准备数据 initDate(); // 实例化自定义的MyAdapter mAdapter = new MyAdapter(list, this); // 绑定Adapter lv.setAdapter(mAdapter); // 全选按钮的回调接口 bt_selectall.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 遍历list的长度,将MyAdapter中的map值全部设为true for (int i = 0; i < list.size(); i++) { MyAdapter.getIsSelected().put(i, true); } // 数量设为list的长度 checkNum = list.size(); // 刷新listview和TextView的显示 dataChanged(); } }); // 反选按钮的回调接口 // bt_cancel.setOnClickListener(new OnClickListener() { // @Override // public void onClick(View v) { // // 遍历list的长度,将已选的设为未选,未选的设为已选 // for (int i = 0; i < list.siz
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值