· 9 years ago · Apr 03, 2016, 04:33 PM
1# coding=utf-8
2from MyInstagram.models import User
3from MyInstagram.models import City
4import random
5
6
7def gen_username():
8 s = ""
9 for i in range(random.randint(8, 12)):
10 s += random.choice("qwertyuiopasdfghjklzcvbxnm1234567890")
11 return s
12
13
14def gen_email():
15 s = ""
16 for i in range(random.randint(13, 20)):
17 s += random.choice("qwertyuiopasdfghjklzcvbxnm1234567890")
18 s += random.choice(["@gmail.com", "@mail.ru", "@yandex.ru", "@rambler.ru"])
19 return s
20
21
22def gen_password():
23 s = ""
24 for i in range(random.randint(20, 30)):
25 s += random.choice("qwertyuiopasdfghjklzcvbxnm1234567890*.@#$%")
26 return s
27
28
29def gen_first_name(sex=0):
30 if sex == 0:
31 f = open('Generate/names-m.txt')
32 else:
33 f = open('Generate/names-f.txt')
34 names = f.readlines()
35 name = random.choice(names).strip()
36 f.close()
37 return name
38
39
40def get_last_name(sex=0):
41 f = open('Generate/surnames.txt')
42 surnames = f.readlines()
43 surname = random.choice(surnames).strip()
44 if sex == 1:
45 surname += u"а".encode("utf-8")
46 f.close()
47 return surname
48
49
50def get_random_city():
51 f = open('Generate/cities.txt')
52 cities = f.readlines()
53 city = random.choice(cities).strip()
54 obj, created = City.objects.get_or_create(city=city)
55 return obj
56
57
58def gen_user():
59 username = gen_username()
60 email = gen_email()
61 password = gen_password()
62 usr = User(username=username, email=email, password=password)
63 if random.randint(0, 30) <= 20:
64 if random.randint(0, 1) == 0:
65 usr.first_name = gen_first_name()
66 usr.last_name = get_last_name()
67 else:
68 usr.first_name = gen_first_name(sex=1)
69 usr.last_name = get_last_name(sex=1)
70 if random.randint(0, 20) <= 15:
71 usr.city = get_random_city()
72 return usr
73
74
75def gen_users(n=10000):
76 users = []
77 for i in range(n):
78 users.append(gen_user())
79 User.objects.bulk_create(users)